Program guide and reservation system for network based digital information and entertainment storage and delivery system

ABSTRACT

In a broadband communications system, e.g., a cable system, programming content can be readily reserved and accessed for viewing using interactive program guides in accordance with the invention. Such programming content may include in-progress programs, future programs and previously broadcast programs which are recorded at a headend in the cable system, and which may or may not have overlapping broadcast times. In addition, the user may reserve programs at a set-top terminal, and may also do so remotely from the terminal through a communications network such as, the Internet, a public switched telephone network (PSTN), a wireless telephone network, etc.

The present application claims under 35 U.S.C. §119(e) the benefit ofU.S. Provisional Application Ser. No. 60/377,963 filed on May 3, 2002.

FIELD OF THE INVENTION

The invention relates to communications systems and methods, and moreparticularly to a system and method for accessing and reservingentertainment programs and other information through a communicationsnetwork, e.g., a cable network.

BACKGROUND OF THE INVENTION

Personal video recorders (PVRs), also known as digital video recorders(DVRs), e.g., TiVO and ReplayTV devices, are popular nowadays, stemmingfrom their capabilities of “pausing”, “rewinding” and “fast-forwarding”live television (TV) broadcast while it is being recorded. They may alsooffer programming access and recording functions, including “seasonpass”—like options for automatically recording every episode of a showfor an entire season and an “on-screen guide” for looking up recordedprograms to view. The PVRs may also suggest programs for recording basedon a user's viewing habit.

With the advent of digital communications technology, many TV broadcaststreams are transmitted in digital formats. For example, DigitalSatellite System (DSS), Digital Broadcast Services (DBS), and AdvancedTelevision Standards Committee (ATSC) broadcast streams are digitallyformatted pursuant to the well known Moving Pictures Experts Group 2(MPEG-2) standard. The MPEG-2 standard specifies, among others, themethodologies for video and audio data compressions which allow multipleprograms, with different video and audio feeds, multiplexed in atransport stream traversing a single broadcast channel. A digital TVreceiver may be used to decode an MPEG-2 encoded transport stream, andextract the desired program therefrom. The prior art PVRs take advantageof MPEG-2 compression of video and audio data to maximize use of theirlimited storage capacity.

MPEG-2 BACKGROUND

In accordance with the MPEG-2 standard, video data may be compressedbased on a sequence of groups of pictures (GOPs), in which each GOP maybegin with an intra-coded picture frame (also known as an “I-frame”),which is obtained by spatially compressing a complete picture usingdiscrete cosine transform (DCT). As a result, if an error or a channelswitch occurs, it is possible to resume correct decoding at the nextI-frame.

The GOP may represent additional frames by providing a much smallerblock of digital data that indicates how small portions of the I-frame,referred to as macroblocks, move over time. Thus, MPEG-2 achieves itscompression by assuming that only small portions of an image change overtime, making the representation of these additional frames extremelycompact. Although GOPs have no relationship between themselves, theframes within a GOP have a specific relationship which builds off theinitial I-frame.

The compressed video and audio data are carried by continuous elementarystreams, respectively, which are broken into access units or packets,resulting in packetized elementary streams (PESs). These packets areidentified by headers that contain time stamps for synchronizing, andare used to form MPEG-2 transport streams. For digital broadcasting,multiple programs and their associated PESs are multiplexed into asingle transport stream. A transport stream has PES packets furthersubdivided into short fixed-size data packets, in which multipleprograms encoded with different clocks can be carried. A transportstream not only comprises a multiplex of audio and video PESs, but alsoother data such as MPEG-2 program specific information (sometimesreferred to as metadata) describing the transport stream. The MPEG-2metadata may include a program associated table (PAT) that lists everyprogram in the transport stream. Each entry in the PAT points to anindividual program map table (PMT) that lists the elementary streamsmaking up each program. Some programs are open, but some programs may besubject to conditional access (encryption) and this information is alsocarried in the MPEG-2 transport stream, possibly as metadata.

The aforementioned fixed-size data packets in a transport stream eachcarry a packet identifier (PID) code. Packets in the same elementarystreams all have the same PID, so that a decoder can select theelementary stream(s) it needs and reject the remainder.Packet-continuity counters may be implemented to ensure that everypacket that is needed to decode a stream is received.

SUMMARY OF THE INVENTION

Although prior art PVRs offer such attractive programming access andrecording functions (e.g., the aforementioned “season pass”-like optionsand “on-screen guide”), we have recognized certain disadvantagesassociated with use of the PVRs. For example, one disadvantage is that aprior art PVR only records (a) the last X minutes of program materialplayed on the channel to which the user actually tunes, where Xrepresents a limited value, and (b) desired programs which need to beidentified to or by the PVR in advance of their broadcast. Thus, anyprogram material other than (a) or (b) is not recorded by a PVR, therebylimiting the materials that a user can review. For example, the PVR usercannot review any unrecorded program (or sometimes even in its entirelyafter its broadcast has started) although the program is recommended bya friend after its broadcast. Another disadvantage is that limited bythe number of tuners therein, a prior art PVR is not capable ofrecording programs in their entirety which have overlapping broadcasttimes and the number of which is greater than the number of tuners,thereby further limiting the materials that a user can review.

The invention overcomes the prior art limitations by providingnetwork-based interactive programming and services. For example, inaccordance with the invention, broadcast programs are recorded at aheadend of a cable network before they are delivered to a user at aset-top terminal. Thus, the user may reserve, for later review, not onlyin-progress programs and future programs as in prior art, but alsopreviously broadcast programs since they have been recorded at theheadend regardless of any user request. As such, the user may alsorestart an in-progress program without a prior request. In addition, byremoving the program recording function from a local device, e.g., aprior art PVR, to the network, the user no longer needs to be botheredwith the local device (or its remote control for that matter), and mayalso reserve programs having overlapping broadcast times. Further, theuser may reserve programs using a device located remotely from theuser's terminal, such as any computer connected to the internet or anytelephonic device connected to the public switched telephone network(PSTN) or a wireless telephone network.

Thus, with the invention, a user advantageously can enjoy any desiredprograms anytime, thereby transcending traditional program schedulelimitations. The invention fully meets such common needs as multiplemembers of a household wanting to reserve and/or archive different showsthat have overlapping broadcast times, e.g., Sunday football games. Theinvention also makes possible reserving and/or archiving, e.g., newsevents, election coverage, etc. across networks and channels for latercomparative review.

Further, the invention obviates the need of a proactive effort otherwiserequired of a PVR user, which includes deciding and actively electing inadvance what shows to record. If the user forgets or is too busy to setthe PVR to record the desired shows, the shows normally would not berecorded, thereby depriving the user of a chance to review them. Tosolve such a problem, for example, an inventive “Lookback” feature isimplemented here to allow a user to go back and access previouslybroadcast programs up to a predetermined period in the past.

In addition, as mentioned before, the invention obviates use of a priorart PVR which is undesirable in many respects. In particular, becausethe PVR typically has a limited storage capacity, the amount ofprogramming which can be recorded by a PVR user is accordingly limited.To improve its storage capacity and other functionalities over time, thePVR user is faced with continual hardware and software upgrades of thePVR, which prove to be time consuming and costly. On the other hand, theinvention allows a user to reserve a virtually unlimited number ofprograms (perhaps subject to a fee schedule) and, at a minimum, to berelieved of the burden of any storage upgrade or other future systemupgrades, which is removed to the network operator.

It is an object of the invention to provide interactive functions toenhance a user's program enjoyment by facilitating access, reservationand playing of selected programming. It is another object of theinvention to provide effective user interfaces for realizing suchservices as program reservation, reservation of multiple episodes of agiven program, season pass reservation, out-of-market programming,program-specific subscription services, etc. It is still another objectof the invention to facilitate effective organization of, and access to,programming information. To that end, a user is provided, e.g., with aninteractive program guide for quickly accessing program line-upinformation, and graphical user interfaces (GUIs) for organizing programchannels, out-of-market channels, etc.

BRIEF DESCRIPTION OF THE DRAWINGS

Further objects, features and advantages of the invention will becomeapparent from the following detailed description taken in conjunctionwith the accompanying drawing showing illustrative embodiments of theinvention, in which:

FIG. 1 is a block diagram of a broadband communications system inaccordance with one embodiment of the invention;

FIG. 2 illustrates a TV program comprising multiple program segmentswhich is provided in the system of FIG. 1;

FIG. 3 illustrates a request for program material from a set-topterminal in the system of FIG. 1;

FIG. 4 is a flow chart depicting a process for providing programmaterial in response to the request of FIG. 3;

FIG. 5 illustrates selected carriers for transmitting program materialsin a forward passband of the system of FIG. 1;

FIG. 6 is a flow chart depicting a process for pausing a program inresponse to a pause message from a set-top terminal;

FIG. 7 is a flow chart depicting a process for rewinding a program inresponse to a rewind message from a set-top terminal;

FIG. 8 is a flow chart depicting a process for fast-forwarding a programin response to a fast-forward message from a set-top terminal;

FIG. 9 is an illustration of a remote control according to oneembodiment of the present invention;

FIG. 10 is a flow chart depicting a program reservation process in afirst embodiment of the invention;

FIG. 11 illustrates screen displays in reserving a group of programs inaccordance with the invention;

FIG. 12 illustrates screen displays in reserving a current show inaccordance with the invention;

FIG. 13 illustrates screen displays in reserving a past show inaccordance with the invention;

FIG. 14 illustrates screen displays in reserving a future show inaccordance with the invention;

FIG. 15 is a flow chart depicting a program reservation process in asecond embodiment of the invention;

FIG. 16 is a flow chart depicting a process for selecting aprogram-specific or channel-specific subscription service;

FIG. 17 illustrates a system in which a user may use a remote interfaceto access the system of FIG. 1 in accordance with a second embodiment ofthe invention;

FIG. 18 illustrates screen displays in accessing Home and Searchgraphical user interfaces (GUIs) in accordance with the invention;

FIG. 19 illustrates a screen display for navigating through aninteractive program guide in accordance with the invention;

FIG. 20A illustrates an inventive integrated program guide foridentifying programs accessible to a user afforded a first set ofprogram access services;

FIG. 20B illustrates an inventive integrated program guide foridentifying programs accessible to a user afforded a second set ofprogram access services;

FIG. 20C illustrates an alternate format to the integrated program guideof FIG. 20A;

FIG. 21 illustrates screen displays in accessing a My Shows GUI inaccordance with the invention;

FIG. 22 illustrates screen displays in accessing an On-Demand GUI inaccordance with the invention;

FIG. 23 illustrates screen displays in setting up a profile in aFavorites GUI in accordance with the invention;

FIG. 24 illustrates screen displays in changing and deleting profiles inthe Favorites GUI in accordance with the invention;

FIG. 25 illustrates screen displays in accessing a Lookback GUI inaccordance with a first embodiment of the invention;

FIG. 26 illustrates screen displays in accessing a Lookback GUI inaccordance with a second embodiment of the invention;

FIG. 27 illustrates screen displays in accessing a Lookback GUI inaccordance with a third embodiment of the invention;

FIG. 28 illustrates screen displays in accessing different SpecialServices features in accordance with the invention;

FIG. 29 illustrates a screen display in accessing out-of-market programline-ups;

FIG. 30 illustrates screen displays in accessing a What's Hot GUI inaccordance with the invention;

FIG. 31 illustrates a network home screen in accordance with theinvention;

FIG. 32 illustrates screen displays in accessing differentMusic-On-Demand features in accordance with the invention;

FIG. 33 illustrates screen displays in accessing different Sportsfeatures in accordance with the invention;

FIG. 34 illustrates screen displays in conducting searches in accordancewith the invention; and

FIG. 35 is a flow chart depicting a process for monitoring userresponses to a commercial playback in accordance with the invention.

DETAILED DESCRIPTION

FIG. 1 illustrates broadband communications system 100 embodying theprinciples of the invention for providing interactive programming andservices to users, including program reservation, season passreservation and out-of-market programming, program-specific subscriptionservices and access to interactive program guides. For example, system100 in this instance includes a cable system for delivering, inaccordance with the invention, information and entertainment programs toset-top terminals on the user premises. As shown in FIG. 1, system 100includes headend 105, hub 120, hybrid fiber coax (HFC) cable network 140and different service area nodes including node 150, which in thisinstance is connected to set-top terminals 158-1 through 158-L in aneighborhood, where L represents an integer.

Headend 105 receives programs and services from various providers andsources, e.g., analog and digital satellite sources, applicationservers, media servers, the Internet, etc. Analog and digital satellitesources typically provide the traditional forms of television broadcastprograms and information services. Application servers typically provideexecutable code and data for application specific services such asdatabase services, network management services, transactional electroniccommerce services, system administration console services, applicationspecific services (such as stock ticker, sports ticker, weather andinteractive program guide data), resource management service, connectionmanagement services, subscriber cares services, billing services,operation system services, and object management services. Media serversprovide time-critical media assets such as MPEG-2 encoded video andaudio, MPEG-2 encoded still images, bit-mapped graphic images, PCMdigital audio, three dimensional graphic objects, application programs,application data files, etc. Although specific examples of programs andservices which may be provided by the aforementioned sources are givenherein, other programs and services may also be provided by these orother sources without departing from the spirit and scope of theinvention.

Acquisition/Staging (A/S) processor 109 in headend 105 processes programmaterials including, e.g., TV program streams, from one or more of theaforementioned sources in analog and digital forms. Analog TV programstreams may be formatted according to the National Television StandardsCommittee (NTSC) or PAL broadcast standard. Digital TV streams may beformatted according to the Digital Satellite System (DSS), DigitalBroadcast Services (DBS), or Advanced Television Standards Committee(ATSC) standard. Processor 109, among other things, extracts programcontent in the analog and digital TV streams and reformats the contentto form one or more MPEG-2 encoded transport streams. Such reformattingmay even be applied to those received streams already in an MPEG-2format. This stems from the fact that the digital content in thereceived MPEG-2 streams are typically encoded at a variable bit rate(VBR). To avoid data burstiness, processor 109 in a conventional mannerre-encodes such digital content at a constant bit rate (CBR) to form theaforementioned transport streams.

An MPEG-2 transport stream contains multiple program streams withdifferent video and audio feeds multiplexed for transmission through thesame transmission channel. The program streams representing individualprograms are identified by respective program identifications (IDs)within a transport stream. It should be noted at this point that theterm “transmission channel” should not be confused with a “programchannel.” A “transmission channel” signifies a designated frequency bandthrough which a transport stream is transmitted. On the other hand, a“program channel” signifies the source of the program material selectedby a user to view. For example, a user may select program channel 2 toview program material provided by CBS, program channel 14 to viewprogram material provided by ESPN; program channel 32 to view programmaterial provided by MTV, etc.

In this illustrative embodiment, the transmission channels, eachcarrying a transport stream, may be 6 MHz bands populating a forwardpassband, e.g., 350–750 MHz band, of a coaxial cable, which is allocatedfor downstream communication from headend 105 to a set-top terminal.

A/S processor 109 may receive “assets” including pre-staged movievideos, news reports, sports events, etc. from content providers.However, in accordance with the invention, processor 109 may also create“assets” in real time while processing received program materials whichare not pre-staged by the content providers. In general, an “asset” is acontainer for any object or set of objects that may be desired toimplement a service, including video, audio, images, applicationexecutables, scripts, configuration files, text, fonts, and HTML pages.In addition to the raw content, metadata (not to be confused with MPEG-2metadata) is also a part of an asset object that describescharacteristics of the asset. For example, asset metadata may describeattributes that are inherent in the content of the asset, such as therating, format, duration, size, or encoding method. Values for assetmetadata are determined at the time the asset is created.

In this illustrative embodiment, an asset concerning a program includesa metadata file and trick files associated with the program, in additionto the program content contained in a transport stream. FIG. 2illustrates TV program 201 which spans from 7:00 p.m. to 7:30 p.m.Program 201 comprises a show interrupted by commercials, which istypical. Thus, the program content in this instance consists of showsegments 231, 233 and 235, interleaved with commercial segments 221 and227. In accordance with an aspect of the invention, the TV programstreams received by processor 109 are pre-processed, e.g., by theproviders, to include indicators, e.g., cue-tones, on which processor109 relies to identify the demarcations (or edges) of different programsand program segments within each program. Thus, in this instance beforeprocessor 109 processes the TV program stream containing TV program 201,a first cue-tone has been inserted at the beginning of segment 231,indicating the beginning of TV program 201; second cue-tones have beeninserted at the beginnings of segments 221 and 227, indicating thebeginnings of the respective commercial segments; third cue-tones havebeen inserted at the ends of segments 221 and 227, indicating the endsof the respective commercial segments; and a fourth cue-tone has beeninserted at the end of segment 235, indicating the end of TV program201. In accordance with another aspect of the invention, another set ofcue-tones may be inserted to delimit a “chapter” (denoted 237) within aprogram. A chapter is a self-contained subprogram, e.g., a skit,monolog, song performance, news report, weather report, etc. within aprogram. With the cue-tones defining one such chapter, processor 109 iscapable of identifying the chapter and create an asset concerning thesame.

Let's assume that TV program 201 in this instance is an initialbroadcast program. Processor 109, among other things, collects in adatabase (not shown) program guide data associated with different TVprograms which are not pre-staged (including TV program 201 in thisinstance) from an application server, which may be different from thesources of the TV programs themselves. Each program when presented toprocessor 109 is identified by a program designation, which may be usedto locate the corresponding program guide data. In particular, processor109 while processing TV program 201 may locate the corresponding programguide data to create in real time the metadata file associated with TVprogram 201. The metadata file thus created includes such data as thetitle, rating (e.g., G, PG-13, R, etc.), names of the producer,director, and actors, duration of the program, program type (e.g.,situation comedy), etc.

Processor 109 may also create in real time trick files associated withprogram 201 as part of the asset which are used to perform PVR-likefunctions (e.g., rewinding and fast-forwarding) on program 201 inaccordance with the invention. One such trick file in this instance is a“fast-forward” trick file which contains an array of identifiers ofI-frames in the program stream (MPEG-2 encoded as mentioned before)corresponding to program 201 in a forward direction. Another trick fileis a “rewind” trick file which contains an array of identifiers ofI-frames in the program stream corresponding to program 201 in thereverse direction. The I-frame identifiers in the trick files are usedas indices or markers for rewinding and fast-forwarding of program 201.It should be noted that not all of the I-frames associated with program201 are selected for the trick files. Rather, the I-frames are selectedperiodically along the program stream. Thus, the shorter the period is,the closer the instants from which program 201 can be rewound, and towhich program 201 can be fast-forwarded, thereby achieving fineradjustments.

It should be noted that where program 201 is not an initial broadcastprogram, which may also be pre-staged, commercial segments 221 and 227may not contain the commercials originally provided by the programprovider. Rather, program 201 may be repackaged with after-marketcommercials, which may be targeted to the user (described below), andwhich may even be injected anywhere in the program with no regard fororiginal segments 221 and 227 in terms of their timing, duration, orquantity. In the event that program 201 is pre-staged, the programcontent comes with the corresponding metadata file and trick filesassociated with the program. Processor 109 stores the created orpre-staged asset including the metadata file and trick files associatedwith a program according to its program designation in asset storage(not shown), which may reside in library manager 113 described below.

The transport streams generated by processor 109, which contain live TVprograms in this instance, are fed to cache manager 111. The latterincludes a cache memory (not shown), e.g., a disk cache, having a memorycapacity on the order of terabytes. Manager 111 copies the transportstreams onto the cache memory, and also forwards the same to librarymanager 113 for long-term storage. The latter includes library storagehaving a memory capacity on the order of hundreds of terabytes, muchlarger than that of the cache memory such that the cache memory storesthe last Y hours' worth of the TV programs while the library storagestores the last Z hours' worth of the TV program, where the value of Zis much greater than that of Y. It suffices to know for now that use ofthe cache memory, which affords faster access to its content than thelibrary storage, facilitates a speedy retrieval of a requested programin the event of a “cache hit,” i.e., the requested program being withinthe last Y hour broadcast. Otherwise, a “cache miss” causes locating therequested program in the library storage, thereby incurring a delay inthe retrieval of the program.

Network controller 125, among others, assigns resources for transportingprogram materials to set-top terminals and communicates various dataincluding system information with the terminals. Upstream data from aset-top terminal to network controller 125 is communicated via a reversepassband, e.g., 5–40 MHz band, of a coaxial cable. The reverse passbandcomprises reverse data channels (RDCs) having a 1 MHz bandwidth in thisinstance, through which quaternary phase shift keying (QPSK) signalscontaining upstream data are transmitted. It should be noted that the 1MHz bandwidth allocated for an RDC here is for illustrative purposesonly. It will be appreciated that a person skilled in the art mayallocate other bandwidths therefor depending on the actualimplementations. A set-top terminal utilizes an RDC for sending bothapplication data and control messages. For example, the Digital AudioVisual Council (DAVIC), a standard setting organization, has defined acontention-based access mechanism whereby multiple set-top terminalsshare an RDC. This mechanism enables the set-top terminals to transmitupstream messages without a dedicated connection to a QPSK demodulator.The mechanism also provides equal access to the set-top terminals thatshare the RDC, and enables detection and recovery from reverse pathcollisions that occur when two or more of the terminals transmit anupstream message simultaneously. As also specified by DAVIC, forcommunications purposes, the set-top terminals and network controller125 are identified by the Internet protocol (IP) addresses assignedthereto. However, these IP addresses may be randomly assigned each timewhen system 100 is reconfigured. As a result, the IP address of aset-top terminal or controller 25 may change after a systemreconfiguration. Nevertheless, each set-top terminal and controller 25is also assigned a media access control (MAC) address on a permanentbasis, surviving any system reconfiguration.

Downstream data from network controller 125 to a set-top terminal iscommunicated via forward data channels (FDCs). These channels, oftenreferred to as “out-of-band” channels, may occupy the 70–130 MHz band ofa coaxial cable. QPSK signals containing system messages to a set-topterminal are transmitted through an FDC having a 1 MHz bandwidth in thisinstance. It should be noted that the 1 MHz bandwidth allocated for anFDC here is for illustrative purposes only. It will be appreciated thata person skilled in the art may allocate other bandwidths therefordepending on the actual implementations.

When a user at a set-top terminal, say, terminal 158-1, turns on the TVassociated therewith and selects a particular program channel, say,program channel 2, or change from another channel to channel 2, terminal158-1 in a well known manner scans for any transport streamstransporting programs to the neighborhood. In system 100, each transportstream is identified by a unique transport stream identification (TSID).

Continuing the above example, once the TSIDs of the transport streamsare detected, terminal 158-1 sends through QPSK modem pool 127 a requestfor program channel 2 material. FIG. 3 illustrates one such request(denoted 300) sent from a set-top terminal to network controller 125 viaan RDC. As shown in FIG. 3, request 300 includes, among others,destination field 303 which in this instance contains the IP address ofnetwork controller 125 for which request 300 is destined; request datafield 306 which contains data concerning the detected TSIDs and therequested program channel material, e.g., program channel 2 material inthis instance; and origination field 309 which in this instance containsthe IP (and/or MAC) address of terminal 158-1 from which request 300originates.

After receiving request 300, network controller 125 reads the receivedrequest to learn the TSIDs, the identity of the requested programmaterial, and the origination address therein, as indicated at step 403in FIG. 4. Network controller 125 communicates with media processor 119to determine the capacity required for transmitting the requestedprogram material. Based on the required capacity, controller 125 at step406 selects a transport stream among those identified by the receivedTSIDs which is suitable for transporting the requested program material.Controller 125 at step 408 identifies the carrier carrying the selectedtransport stream.

Referring also to FIG. 1, modulator bank 123 in this instance is locatedin hub 120 connected to headend 105 via IP transport on the one hand andto HFC cable network 140 on the other hand. Bank 123 includes multiplemodulators, each of which is used to modulate transport streams ontodifferent carriers. Each modulated carrier carrying a transport streamis transmitted through a transmission channel associated therewith. FIG.5 illustrates M carriers, C₁ through C_(M), associated with Mtransmission channels in the forward passband. As shown in FIG. 5, thecarrier frequency of C₁ is denoted CF₁; the carrier frequency of C₂ isdenoted CF₂; . . . ; and the carrier frequency of C_(M) is denotedCF_(M). In this example, each program stream may contain 4.2 Mb/s videoand audio program data. By using a 256-quadrature-amplitude-modulation(256-QAM) technique and 6 MHz transmission channel, each modulator inmodulator bank 123 in this instance may modulate up to 9 programstreams, multiplexed in a transport stream, onto the correspondingcarrier. The resulting modulated carrier is transmitted through thetransmission channel associated with the carrier.

Network controller 125 may include therein a carrier assignment tablewhich lists, for each carrier, the TSID of the transport stream carriedthereby. The carrier identification by network controller 125 ataforementioned step 408 may be achieved by looking up from the table thecarrier associated with the TSID of the selected transport stream. Basedon the requested program channel, network controller 125 at step 409determines the program ID identifying the program stream representingthe requested program material, i.e., program channel 2 material in thisinstance, which is then multiplexed with other program streams in theselected transport stream. At step 412, network controller 125communicates to media processor 119 a first message containing theidentity of the modulator in modulator bank 123 which corresponds to thecarrier, say, C₁, just determined, and the program ID associated withthe requested program channel material just determined. Networkcontroller 125 at step 415 sends, through QPSK modem pool 127, a secondmessage responsive to the received request to set-top terminal 158-1identified by the origination IP (and/or MAC) address in field 309 ofrequest 300. This second message traversing an FDC contains theinformation concerning the carrier frequency, i.e., CF₁ in thisinstance, to which terminal 158-1 should tune to receive the appropriatetransport stream, and the program ID for extracting the desired programstream, representing in this instance program channel 2 material, withinthe transport stream.

In response to the first message, processor 119 directs cache manager111 to deliver a copy of the program stream representing the requestedprogram channel material thereto and causes the program stream to bemultiplexed with any other program streams already in the transportstream identified by the selected TSID. In addition, processor 119causes switching unit 117 to switch the resulting transport stream tothe modulator corresponding to the carrier C₁. Accordingly, themodulator modulates the carrier C₁ with the received transport stream,and causes transmission of the modulated carrier through thetransmission channel associated with CF₁.

Based on the information in the second message, terminal 158-1 tunes tothe carrier frequency CF₁ to receive the transmitted transport stream,and extracts therefrom the desired program stream, representing programchannel 2 material in this instance. In a well known manner, terminal158-1 converts the extracted program stream to appropriate signals forthe associated TV to play program channel 2 material.

While the program channel 2 material is being played, terminal 158-1continuously registers the last I-frame identifier in the receivedtransport stream. From time to time, terminal 158-1 sends a “heartbeat”containing the IP (and/or MAC) address identifying terminal 158-1 andthe last I-frame identifier to media processor 119. Processor 119 keeps,for terminal 158-1, a record identified by the IP (and/or MAC) addressof terminal 158-1, and tracks the program being transmitted to terminal158-1 and its I-frame progress. When processor 119 no longer receivesheartbeats from terminal 158-1, e.g., because of an off state of theterminal, processor 119 may cause the transmission of the transportstream to terminal 158-1 to be halted.

When the user issues a pause command to terminal 158-1, e.g., bypressing a “pause” key on a remote control associated therewith totemporarily stop the progress of the program, terminal 158-1 issues apause message to media processor 119 identified by its IP address. Thepause message in this instance includes a pause initiation command, thelast I-frame identifier registered by terminal 158-1, and the IP and/orMAC address of terminal 158-1. After issuing the pause message, terminal158-1 enters a pause state and causes the picture corresponding to thenext I-frame, say I-frame_(pause), to be frozen on the TV screen,thereby achieving the pause effect. After receiving the pause message,processor 119 reads the received pause message, as indicated at step 603in FIG. 6. Processor 119 at step 606 causes the current transmission ofthe program material to set-top terminal 158-1 (identified by thereceived IP and/or MAC address) to be halted at the I-frame immediatelyfollowing the last I-frame identified in the received message. Processor119 at step 609 retrieves the record associated with terminal 158-1.Processor 119 at step 612 notes in the record that the transmission ofthe program material to terminal 158-1 has been halted atI-frame_(pause).

When the user issues a command to resume viewing the program material,e.g., by toggling the pause key on the remote control, terminal 158-1exits the pause state, sends a resumption message to processor 119, andreadies itself to receive the program material starting fromI-frame_(pause). This resumption message includes a resumption command,and the IP and/or MAC address of terminal 158-1. After reading thereceived resumption message, processor 119 retrieves the recordassociated with terminal 158-1 identified by the received IP and/or MACaddress. In response to the resumption command, processor 119 causes thetransmission of the program material to terminal 158-1 to be restartedfrom I-frame_(pause), and notes in the record the transmissionresumption event. As a result, terminal 158-1 resumes receiving theprogram material in the same program stream delivered thereto before. Itshould be noted that use of a MAC address, instead of an IP address, toidentify terminal 158-1 may be advantageous here especially when thepause state is long, so much so that a reconfiguration of system 100 mayhave occurred during such a state. In that case, the IP addressidentifying terminal 158-1 before the system reconfiguration may bedifferent than that after the reconfiguration, and as a result, by usingonly the pre-reconfiguration IP address of terminal 158-1 for itsidentification, the resuming program stream would not be delivered tothe intended terminal 158-1 after the reconfiguration. On the otherhand, since the MAC address of terminal 158-1 is immutable and survivesany system reconfiguration, by relying on the MAC address of terminal158-1 for its identification here, the resuming program stream would becorrectly delivered to terminal 158-1 even after a systemreconfiguration.

While viewing a program, the user may issue a rewind command, e.g., bypressing a rewind key on the remote control, to rewind the program. Inthat case, terminal 158-1 issues a rewind message to processor 119identified by its IP address. This rewind message includes a rewindinitiation command, the last I-frame identifier registered by terminal158-1, and the IP address (and/or MAC address) identifying terminal158-1. After receiving such a rewind message, processor 119 reads thereceived rewind message, as indicated at step 703 in FIG. 7. Processor119 at step 706 retrieves the record associated with set-top terminal158-1 identified by the received IP address (and/or MAC address).Knowing from the record the identity of the program being transmitted,processor 119 at step 709 retrieves from the aforementioned assetstorage the rewind trick file associated with the program. Based on thelast I-frame information in the received message, processor 119 at step712 identifies the I-frame in the rewind trick file which either matchesor is the closest to that last I-frame. Processor 119 at step 715 readsthe array of identifiers of the I-frames in the rewind trick filestarting from that of the identified I-frame. Processor 119 at step 718causes the program material, corresponding to the I-frame identifiers asread, to be retrieved from cache manager 111, and to be transmitted inthe transport stream to terminal 158-1, thereby achieving the desiredrewind effect.

When the user issues a command to stop rewinding the program, e.g., bytoggling the rewind key on the remote control, terminal 158-1 sends arewind termination message to processor 119. This message includes arewind termination command, and the IP address (and/or MAC address) ofterminal 158-1. In response to the rewind termination command, processor119 stops reading the rewind trick file associated with the program.Processor 119 learns from the record associated with terminal 158-1 thelast I-frame identifier read from the rewind trick file. Processor 119causes retrieval of the program material at the normal forward speedfrom cache manager 111 starting from the I-frame identified by the lastread identifier, and transmission of the retrieved program material toterminal 158-1. As a result, terminal 158-1 resumes receiving theprogram material at the normal forward speed in the same transportstream.

After rewinding a program, the user may issue a fast-forward command,e.g., by pressing a fast-forward key on the remote control, tofast-forward the program. In that case, terminal 158-1 issues afast-forward message to processor 119 identified by its IP address. Thisfast-forward message includes a rewind initiation command, the lastI-frame identifier registered by terminal 158-1, and the IP address(and/or MAC address) identifying terminal 158-1. After receiving such afast-forward message, processor 119 reads the received fast-forwardmessage, as indicated at step 803 in FIG. 8. Processor 119 at step 806retrieves the record associated with set-top terminal 158-1 identifiedby the received IP address (and/or MAC address). Knowing from the recordthe identity of the program being transmitted, processor 119 at step 809retrieves from the aforementioned asset storage the fast-forward trickfile associated with the program. Based on the last I-frame informationin the received message, processor 119 at step 812 identifies theI-frame in the fast-forward trick file which either matches or is theclosest to that last I-frame. Processor 119 at step 815 reads the arrayof identifiers of the I-frames in the fast-forward trick file startingfrom that of the identified I-frame. Processor 119 at step 818 causesthe program material, corresponding to the I-frame identifiers as read,to be retrieved from cache manager 111, and to be transmitted in thetransport stream to terminal 158-1, thereby achieving the desiredfast-forward effect.

When the user issues a command to stop fast-forwarding the program,e.g., by toggling the fast-forward key on the remote control, terminal158-1 sends a fast-forward termination message to processor 119. Thismessage includes a fast-forward termination command, and the IP address(and/or MAC address) of terminal 158-1. In response to the fast-forwardtermination command, processor 119 stops reading the fast-forward trickfile associated with the program. Processor 119 learns from the recordassociated with terminal 158-1 the last I-frame identifier read from thefast-forward trick file. Processor 119 causes retrieval of the programmaterial at the normal forward speed from cache manager 111 startingfrom the I-frame identified by the last read identifier, andtransmission of the retrieved program material to terminal 158-1. As aresult, terminal 158-1 resumes receiving the program material at thenormal forward speed in the same transport stream.

It should be pointed out at this juncture that in the above illustrativeembodiment, the transport streams generated by processor 109, whichcontain, e.g., live TV broadcast, are recorded in cache manager 111,followed by library manager 113, before they are fed to the requestingset-top terminals. As a result, the transport streams received by theterminals actually are recorded copies of the streams generated byprocessor 109. However, in a second embodiment, the transport streamsgenerated by processor 109 are fed to the requesting set-top terminalsin real time, and at the same time switched to cache manager 111 andlibrary manager 113 for recording thereof. Thus, in this secondembodiment, when a user at a set-top terminal performs a PVR-likefunction on an in-progress TV broadcast program, say, rewinding theprogram, the real-time transport stream being received by the terminalis immediately replaced by a second transport stream containing arecorded copy of the TV program, e.g., from cache manager 111. If afterrewinding the program, the user invokes a fast-forwarding command tofast-forward the recorded TV program, there may come a point where therecorded TV program catches up with the in-progress program. In thatcase, the second transport stream being received by the terminal may bereplaced back by the real-time transport stream containing thein-progress program.

Based on the disclosure heretofore, it is apparent to a person skilledin the art that the above-described interactivities between a set-topterminal and media processor 119 and/or network controller 125 inserving a TV broadcast program similarly apply to serving of other typesof asset, e.g., a music video, news event, weather report, trafficreport, sports event, video-on-demand (VOD), an audio-on-demand, etc.For example, the VOD assets may be stored in the library storage inlibrary manager 113. In serving a VOD requested by a user, mediaprocessor 119 incorporates also other well known VOD server functions(e.g., receiving VOD requests, scheduling video presentations, etc.)retrieves a copy of the requested VOD from the library storage andcaches the copy while serving the VOD. Subsequent requests for the sameVOD would trigger a cache hit, thereby expediting the VOD presentation.In fact, in another embodiment, a number of caches, in addition to thatin manger 111, are placed at selected delivery points in system 100,e.g., at an input to modulator bank 123, to cache any assets recentlyrequested by, or delivered to, users in the hope that the same assetswill be requested repeatedly because of their popularity, therebyincreasing the chance of a cache hit.

Based on the disclosure heretofore, it is also apparent to a personskilled in the art that the above-described interactivities between aset-top terminal and media processor 119 and/or network controller 125apply not only to carrying out the particular interactive PVR-likefunctions described above (e.g., pausing, rewinding andfast-forwarding), but interactive programming and services in general.To facilitate the realization of such programming and services, users atset-top terminals may be provided with on-screen user interfacesincluding, e.g., a Home graphical user interface (GUI), My Shows GUI,On-Demand GUI, Lookback GUI, Favorites GUI, Services GUI, What's HotGUI, Music-On-Demand GUI, Sports GUI and Search GUI, etc. to bedescribed.

Program Reservation

One such interactive service is a “program reservation” service inaccordance with the invention. This program reservation service enablesa user to “reserve” (1) programs, e.g., live (i.e., in-progress) orplayed back (i.e., previously broadcast) television programs, movies,music videos, etc. and (2) service displays, e.g., product information,commercials, web pages, etc. As mentioned before, all broadcast programsin this instance are recorded at headend 105 and all on-demand and othercontent is stored at headend 105 as well. Referring to FIG. 9, when auser at a set-top terminal, say, terminal 158-1, presses record key 910of remote control 900 associated with the terminal to save a program forsubsequent viewing, set-top terminal 158-1, unlike a prior art PVR, doesnot actually record the program. Rather, in accordance with theinvention, in response to the user depression of record key 910,terminal 158-1 marks the program or event that has been recorded and/orstored at headend 105. The marking information concerning the point ofthe program (e.g., time or I-frame) at which the user pressed key 910 istransmitted to media processor 119. Information concerning the programchannel to which terminal 158-1 tunes at that point, and an IP address(and/or MAC address) identifying terminal 158-1 are also transmitted tomedia processor 119. Based on the received IP address, processor 119retrieves a user record associated with terminal 158-1, and registers inthe record the ID of the asset containing the reserved program which isidentifiable by the received marking information and program channelinformation, and which is made available to the user for subsequentplayback. Thus, this user record is maintained, along with other userrecords, in storage (not shown) in headend 105, and contains, amongothers, a collection of IDs of the assets reserved by the user. The userrecord may be retrieved from the storage from time to time to review andupdate the assets the user has reserved. The identities of the reservedassets may be presented to the user in different formats or GUIs, e.g.,in a My Shows list described below.

In a particular illustrative embodiment, referring to FIG. 10, when theuser reserves a program that is in progress, terminal 158-1 marks theentire program (e.g., by noting the program start and end times orI-frames) as well as the point at which the user pressed record key 910(step 5010). On playback, the user has the option to begin viewingeither at the beginning of the program or at the point that the userpressed record key 910. In another embodiment, when key 910 is pressed,a menu including different reservation options for selections isdisplayed on the TV screen. One such reservation option may be “seasonpass” or (reserve all) which enables a user to reserve all relatedprograms that are available. For example, the user may use select key960 to select the “season pass” option to reserve all episodes of aparticular TV show, including all past, in-progress and future episodesthat are available for reservation (steps 5020, 5040).

Referring to FIG. 11, a user may access the “season pass” option byusing record key 910 of remote control 900 to access “Reserve” display5610. Reserve display 5610 makes the following reserve options (5615)available to a user: season pass, play or reserve. The play optionenables the display of a selected program from its beginning, althoughthe selected program is not reserved. The reserve option selects aprogram to be added to a user's Favorite Show list. The season passoption allows a user to reserve multiple episodes of a selected program.By accessing the season pass feature from reserve options 5615, seasonpass submenu 5620 makes the following sub-options (5625) available to auser: choosing the number of episodes to be reserved, determiningwhether to reserve repeat episodes and viewing upcoming episodes foraccess.

By selecting the option for choosing the number of episodes to bereserved, “Number of Episodes” GUI 5630 is displayed and enables a userto select from submenu 5635 the number of upcoming episodes to bereserved. In one embodiment, the user may select from reserving the nextepisode, the next three episodes, the next five episodes or all upcomingepisodes of a selected program. In another embodiment, the user may havethe option of entering an integer which indicates the number of upcomingepisodes that are to be reserved for the user in the future. The usermay also have the option of reserving all episodes which would includereserving all of the upcoming episodes in addition to the past episodesthat are still available to the user for viewing.

By selecting the option for keeping repeats, “Keep Repeats” GUI 5640 isdisplayed and enables a user to command that all upcoming episodes of aspecified program should be reserved by selecting “Yes” from submenu5645 or only those episodes that are not repeats by selecting “No” fromsubmenu 5645. A “repeat” is a program episode that has been previouslybroadcast by a content provider and is being broadcast again, which isindicated in the program guide data associated with the episode. In apreferred embodiment, a default is associated with the season passfeature in which only first run episodes (i.e., not repeats) arereserved unless the “Yes” repeat option is selected by the user.

By selecting the option for viewing all upcoming episodes of a selectedprogram, “View All Upcoming” GUI 5650 is displayed and enables a user toselect among a display of all upcoming episodes of a specified program.The display lists all upcoming episodes of a selected program and thedate that they are scheduled to broadcast. The list is limited to thoseepisodes for which data may be available. For example, if data isavailable for two weeks into the future, every episode scheduled tobroadcast in those two weeks is displayed. The user is then prompted toselect among listed program episodes 5655 of View All Upcoming GUI 5560.When the user selects a listed episode by, for example, highlighting thedesired episode and pressing select key 960 of remote control 900, theuser is provided with options for reserving future programs as describedbelow with reference to FIG. 14.

It should be noted that using the inventive program reservation service,a user may advantageously reserve multiple programs having overlappingbroadcast times. As such, system 100 is superior to prior art PVRs inthat, among others, limited by the number of tuners therein, the PVRsare not capable of recording time-overlapping programs in their entiretywhose number is greater than the number of tuners, and retrievingpreviously unrecorded broadcast programs. It should also be noted thatreserving a program here does not interfere with a user's ability towatch and/or interact with other programs.

The inventive program reservation service enables a user to reservepast, current and future programs. When a user reserves a program thatwas broadcast in the past, the user may add the program to a My Showslist (described below) and can play the program from the beginning ofthe program or from any other point of time within the program. If theuser reserves a currently broadcast (i.e., in-progress) program, theprogram is also added to the user's My Shows list and the user cancontinue to watch the program from the point of the program that isbeing broadcast or any portions of the show that has already beenbroadcast. If the user reserves a future program, the program is addedto the user's My Shows list for viewing at the time of program broadcastor after the program is broadcast. Regardless of whether the reservedprogram is a past, current or future program, the user has the choice ofwatching any channel (e.g., other than the dedicated playback channelfor the reserved program) at the time of the reservation and can choosethe period in which the reserved program is to be viewed.

FIGS. 12–14 illustrate the options available to a user when reserving acurrent (FIG. 12), past (FIG. 13) and future (FIG. 14) program. Userscan reserve programs that are currently being broadcast while they arewatching the program or from an interactive program guide to bedescribed. Referring to FIG. 12, if a user is watching a program that iscurrently being broadcast on a first channel GUI 5310 a, the user mayissue a reserve command by pressing record key 910 of remote control900. When media processor 119 receives a command to reserve a selectedprogram, processor 119 determines whether the selected program isreservable (5315). Reservable programs are those that have been recordedand stored at headend 105 for future accessability. Such programs maythen be reserved after they have been broadcast. These programs may alsobe manipulated by the user by issuing PVR-like commands, such as rewind,fast-forward, pause, skip commercials and restart. Programs that are notpredesignated for reservation are referred to as non-reservableprograms.

If the selected program is non-reservable, then Reserve GUI 5335 isdisplayed indicating that the user has the option to record the selectedprogram to a VCR (alternatively PVR, DVD player or other local recordingdevice) (5340). If however, the program is deemed reservable, ReserveGUI 5320 is displayed providing the user with three Reserve options(5330): (1) restart the program, (2) reserve the program, or (3) selecta season pass. The restart option enables the display of a selectedprogram from its beginning, although the selected program is notreserved. The reserve option selects a program to be added to a user'sFavorite Show list and does not restart the show from its beginningunless a restart command is also issued by the user. The season passfeature allows a user to reserve multiple episodes of a program (asdescribed above with reference to FIG. 11).

In an illustrative embodiment of the invention, the user receives aconfirmation after making a reservation by selecting one of thereservation options. For example, if a user selects the program forreserving by pressing select key 960 of remote control 900, banner 5355is temporarily displayed on first channel GUI 5310 b. Banner display5355 includes information relating to the program reservation, includingthe program that was reserved, the broadcast time (e.g., 8:00PM to8:30PM), the current time and the network that broadcast the program.After banner 5355 has been displayed for a predetermined amount of time(e.g., 3 seconds), it is removed from first channel GUI 5310 b and theprogram that the user was watching prior to initiating the reservationis displayed (5310 c) without any further message.

In this illustrative embodiment, when a user is watching a live TVbroadcast, the user may press record key 910 twice in quick succession(e.g., with one second of the first) to bypass the reserve options menuand automatically reserve the program. No messages (e.g., Reserve GUI orbanner ad) appear and first channel display 5310 a continues to show theprogram without interruption. In another embodiment, banner 5355 isdisplayed for a three seconds. In another embodiment, no display (banneror otherwise) is provided and confirmation for the reservation is onlyviewed by accessing the user's Favorite Shows GUI.

Users can reserve programs that were previously broadcast (i.e., pastbroadcasts) by accessing and locating the desired program from theinteractive program guide. Referring to FIG. 13, after accessinginteractive program guide 5410 a, the user scrolls through program grid5415 to locate and highlight a reservable program that has beenpreviously broadcast. Scrolling through the program grid is describedmore fully with reference to FIG. 19. If the user issues a reservecommand by pressing record key 910 of remote control 900, Reserve GUI5420 is displayed, providing the user with three Reserve options (5430):(1) play the program, (2) reserve the program, and (3) select a SeasonPass.

The play option enables the display of a selected program from itsbeginning, although the selected program is not reserved. Referring toFIG. 13, if a user issues a command to play the selected program bypressing select key 960 of remote control 900 when the play option ishighlighted, banner 5450 is temporarily displayed on first channel GUI5440. Banner display 5450 includes information relating to the programreservation. If the reserve option is selected, the specified program isadded to a user's Favorite Show list, but is not automatically displayedto the user. Instead, the display returns to program guide 5410 b. Ifthe season pass feature is enabled, the user is then prompted to reservemultiple episodes of a program as described above with reference to FIG.11.

Users can reserve programs that have yet to broadcast but are scheduledto be broadcast in the future (i.e., future broadcasts) by accessing andlocating the desired program from the interactive program guide.Referring to FIG. 14, after accessing interactive program guide 5510 a,the user may scroll through program grid 5515 to locate and highlight aprogram that is scheduled to broadcast in the future. When mediaprocessor 119 receives a command to reserve a selected future broadcast,processor 119 determines whether the selected program is reservable(5515).

If the selected program is non-reservable, then Reserve GUI 5540 isdisplayed indicating that the user only has the option to record theselected program to a VCR (5550). If, however, the user issues a commandto reserve a reservable program, Reserve GUI 5520 is displayed,providing the user with two reserve options (5530): (1) reserve theprogram, and (2) select a season pass. The program reserve option (whichis highlighted as the default choice) enables a user to select a programto be added to a user's Favorite Show list which becomes available forviewing after the program has broadcast. Program guide 5510 b is thenredisplayed. It should be noted that, in a preferred embodiment, whenthe future program eventually becomes a current program, the program isthen immediately available to the user for viewing as a current program.Further, when the program is completely broadcast, it becomes availablefor access by a user as a past program.

The period in which a reserved program can be viewed may be limited to apredetermined amount of time (e.g., three weeks) from the programreservation date (5030). In such instance, all users who reserve aprogram will have access to the program for the same amount of time(i.e., three weeks) regardless of the broadcast date, as long as theprogram is reserved within the available time frame. If thepredetermined amount of time has not passed (5050), access to theprogram is maintained (5080). However, once media processor 119determines that the program has been on reserve for the predeterminedamount of time (5050), a message may be sent to the user indicating thatthe program will no longer be available (5060) and offering the user theopportunity to archive the reserved program (5070). Archiving a programpermits a user accessibility to the program for an extended period oftime (e.g., up to one or more years from broadcast) and may be for afee. In another embodiment, the user may archive the program bydownloading it to selected storage at the user's site, e.g., on a DVDplayer, VCR or PVR connected to or integrated into terminal 158-1.

In accordance with another aspect of the invention, the programreservation service allows a user to reserve a program within apredetermined period after the program's broadcast. System 100 may makea program available for reserving and viewing within a limited time(e.g., two weeks) from the broadcast date, subject to the rightsnegotiated with the content provider. In such an instance, the more timethat transpires since a program is broadcast, the less time the userwould have to view the program, assuming the program is still availableto be reserved. In any event, a notice may be issued to users, notifyingthe users about the programs which are about to expire for reservation,e.g., 24 hours before their expiration.

Referring to FIG. 15, once a program is broadcast (6010), it is recordedat headend 105 (6020) in accordance with the invention and the programmay be accessible to the user for a predetermined amount of time (6030).If the predetermined time from when the program was broadcast has yet tolapse (6040), program availability is maintained (6060). When, however,media processor 119 determines at that predetermined amount of time haslapsed, the program is no longer available to users (6050).

Once a program has been reserved, the user can access the reservedprogram in a manner to be described, and navigate through the programwith the above-described PVR-like functions. The user may thereforeplay, pause, stop, fast-forward and rewind the reserved program. If theentire length of a program has been broadcast, then all of thesePVR-like functions may be operational for that program. If, however, ashow is in progress, the fast-forward function is operational to theextent that the show has been broadcast. In other words, the user cannotfast-forward or play the portion of the show that has not beenbroadcast. Nevertheless, the play, pause, stop and rewind functions arefully operational when viewing a reserved in-progress program.

Many subscription service options become realizable owing to theversatility of the inventive reservation service. For example, suppose auser does not subscribe to a subscription-based channel (i.e., a channelthat requires a user to pay a fee in order to gain access, such as HBO,Showtime, etc.), but wants to reserve a certain program that isbroadcast by that channel. In such instances, the user may have theoption to reserve a specific program or specific episode(s) of a programat a pre-specified price. That is, even if a user is not a subscriber toHBO, a subscription service option may be effectuated in accordance withthe invention to allow the user to reserve one or more episodes of adesired TV show, e.g., The Sopranos, on HBO.

FIG. 16 illustrates the inventive reservation service with one suchsubscription service option. When a user selects a specific program forwhich a reservation is desired (step 5710), a determination is made asto whether the selected program is provided by a subscription-basedchannel (step 5715).

If the selected program is not provided by a subscription-based channel,then the user is asked whether the user is reserving multiple episodesof the selected program (step 5725). If only the selected program isdesired for reserve, then the program is reserved as described withreference to FIG. 12 if the program is a currently broadcast (i.e.,in-progress) program, FIG. 13 if the program is a past program or FIG.14 if the program is a future program. If a user desires to reservemultiple episodes of the selected program, then the program is reservedas described with reference to FIG. 11.

Returning to step 5715, if the user selects a program for reservationprovided by a subscription-based channel, whether the user is asubscriber to that channel is determined (step 5735). If the user is asubscriber to the channel for which the program is selected, the subjectroutine proceeds to step 5725 described above. If the user is not asubscriber to the channel for which a program reservation is made, theuser is provided with the following options: (1) to subscribe to thatchannel; (2) pay an access fee for the selected program; and (3) pay anaccess for all episodes of a specified program for a season (or a year).

For example, if the user agrees to become a subscriber to a channel(step 5740), the user receives a message that a subscription fee will beassessed and that the user may reserve programming provided by thatchannel without having to pay any additional fees (step 5745). If,however, the user wants to reserve a program provided by asubscription-based channel for which the user does not subscribe, and ifthe user does not want to subscribe to the channel, the user may reservethe specified program for a fee. Accordingly, the user is asked whethera reservation is being made for only one episode or more than oneepisodes of the selected program (step 5750). If the user indicates thatonly one episode of the program is to be reserved, the user is charged aprogram episode reservation fee (e.g., $0.99) (step 5755) and then isprompted to make the reservation as previously described with referenceto FIG. 12 for a current program, FIG. 13 for a past program or FIG. 14for a future program. Alternatively, if the user indicates that morethan one episode of the selected program is to be reserved, the user ischarged a season pass reservation fee (step 5760) and is then promptedto make the reservation as described by FIG. 11 for season passreservations.

It should be noted at this juncture that a user may, instead ofreserving a program at terminal 158-1 using remote control 900, a usermay reserve a program at a remote location, e.g., through the Internet,a public switched telephone network (PSTN), wireless telephone network,or other communications network.

FIG. 17 illustrates an arrangement in which a user may remotely accessheadend 105 to reserve a program through the Internet. For example, auser may utilize a personal computer (PC) having web interface 192 toaccess program guide server 195 over the Internet 194 at a predetermineduniform resource locator (URL). Program guide server 195 may be acomponent of headend 105.

In this illustrative arrangement, program reservation is effectuated byserver 195 providing on web interface 192 an electronic program guidesimilar to guide 1020 in FIG. 19 to be describe. Program guide server195 is receptive to reservation commands from the user and communicatessuch commands to media processor 119. In an alternative arrangement, theuser may utilize a telephonic device (e.g., landline or wireless) toreceive voice menus from program guide server 195 through a PSTN, awireless telephone network, etc. Such voice menus describe the programguide and facilitate the user's selection of a program for reservation.In addition, program guide server 195 has capabilities of voicerecognition or DTMF signal recognition for receipt of a user's commands.

It should also be noted that other interactive programming and services,including My Shows, Favorites, Special Services, Customized Settings,“What's Hot”, On-Demand services, searching, etc. to be described, maysimilarly be accessed locally using remote control 900 or remotely via acommunications network.

Referring to FIG. 18, by pressing guide key 920 on remote control 900while viewing program channel display 1010 in FIG. 18 (which may be alive or played back TV show, movie, music video, service or the like), auser may access interactive program guide 1020, which includes programviewing window 1040, current time and channel indicator 1045, programdescription box 1050, program grid 1060 and menu display 1065. In oneembodiment, menu display 1065 lists three menu choices available to theuser. By pressing key 940 labeled “B,” the available interactiveservices are displayed at expanded Home GUI 1030. Alternatively, bypressing key 950 labeled “C,” the interactive search services are madeavailable at Search GUI 1100. The user may return to the interactiveprogram guide 1020 from either expanded Home GUI 1030 or Search GUI 1100by pressing key 930.

The interactive program guide 1020 may be, e.g., a time/channel-basedguide that provides a user with time and channel information regardingspecific shows. In addition to enabling a user to view such informationwith respect to in-progress and upcoming programming, interactiveprogram guide 1020 permits users to view information concerningpreviously broadcast programs. Such information is particularly usefulto a user for reserving past programs. Accordingly, in one embodiment,interactive program guide 1020 lists all previously broadcast programsfor a predetermined amount of time into the past, some but not all ofwhich may be reserved, in accordance with the negotiated content rights.In another embodiment, interactive program guide 1020 lists only thosepreviously broadcast programs that are available for reservation.

Referring to FIG. 19, a user may navigate through interactive programguide 1020 using remote control 900. For example, by pressing “up arrow”or “down arrow” keys 985 of remote control 900 while highlighting a cellin program grid 1060, the user may scroll up or scroll down,respectively, to view programs that are available by different channelsfor a specific time slot. Pressing “page up” or “page down” keys 987while highlighting a cell in program grid 1060 enables scrolling up ordown, respectively, through program grid, four channels at a time. Inanother embodiment, the number of channels that are scrolled throughwhen page +/−key 987 is pressed may be greater or less than four rows. Auser may also navigate forward and backward through time in interactiveprogram guide 1020. By pressing “right arrow” and “left arrow” keys 985a and 985 b of remote control 900, the user may move forward orbackward, respectively, through the interactive program guide 1020 inhalf hour increments. Movement through interactive program guide 1020for a selected channel may also be effectuated in one day increments bypressing “day +/−” key 989 of remote control 900.

In accordance with an aspect of the invention, navigating throughinteractive program guide 1020 enables a user to identify a show forreservation and or viewing as described above with reference to FIGS.11–14. In one embodiment, a user can reserve content for up to apredetermined period (e.g., two weeks) in the past for past programs andup to another predetermined period (e.g., two weeks) in the future (forfuture programs). In another embodiment, there is no predetermined timerestriction for making a reservation for future programs as long asinformation concerning the program is available by the content provider.When the user reaches the “end” of interactive program guide 1020 (i.e.,the last future or past time slot for which data is available), pressingthe right/left arrow keys 985 a/985 b or day +/−keys 989 beyond theguide's “end” has no effect. The reservation is accomplished by theuser's selecting (or highlighting) a desired program shown on programguide 1020, followed by pressing “record” key 910 on remote control 900.

As mentioned before, multiple programs having overlapping broadcasttimes may be reserved in accordance with the invention. Thus, a user mayreserve the program “Law and Order” provided by WNBC and the baseballgame provided by WCBS even though the two programs are scheduled tobroadcast between 10:00 PM and 11:00 PM according to program guide 1020.

Further, additional interactive program guides may be made available toa user based on geographic location. For example, users may not belimited to only view channel and time information for programs that arebroadcast to the geographic area in which the user is currently located;instead, the user may choose to view such programming information inother geographic areas (out-of-market). Such a feature (described morefully with reference to FIG. 29 may be particularly useful if the useris traveling to an area outside the user's geographic region.

Referring briefly back to FIGS. 9 and 18, the user may return to theprogramming or services features by selecting “B” key 940 or “C” key 950on remote control 900, respectively. The interactive programming andservices offer users access to personalized programming content whichcan be accessed through the user interface and the functionality of suchprogramming and services is described more fully below. Further, theinteractive searching services enable a user to initiate a search forcontent and is also further described below.

Integrated Program Guide

A user of the inventive program reservation service, which enables theuser to access selected past and future programs by way of reservation,may also have other means or services to access broadcast programs. Forexample, recently, set-top boxes incorporating traditional PVR functions(“set-top PVR” functions) were offered to the public. Thus, in thisillustrative embodiment, the user may also rely on set-top terminal158-1 which in this instance incorporates the set-top PVR functions to,among others, digitally record programs. The set-top PVR recordedprograms in their entirety are stored in a hard drive, e.g., a disk, inset-top terminal 158-1 for later review by the user. Like a traditionalPVR but unlike the inventive program reservation service, the set-topPVR service can only record those programs which have been identified toor by the set-top PVR service in advance of their broadcast, and whosebroadcast times do not overlap. In contrast to the set-top PVR service,the inventive program reservation service is also referred to as a“network PVR (NPVR)” service.

It is desirable that the user having multiple program access servicescan effectively keep track of the programs which are accessible to theuser at any given point in time. Accordingly, in accordance with anotheraspect of the invention, a user-specific integrated program guidelisting accessible programs (e.g., reserved, reservable, set-top PVRrecorded, etc.) depending on the services enabled for a user is madeavailable to the user. By way of example, the user in this instance isafforded the NPVR service and the set-top PVR service. When the userpresses guide key 920 on remote control 900, set-top terminal 158-1transmits a request for an integrated program guide to program guideserver 195 in headend 105. Included in the request is the IP (and/orMAC) address of terminal 158-1 associated with the user, and a list ofthe IDs of the assets containing programs which are set-top PVR recorded(or to be recorded) in accordance with the user's earlier instructions.Based on the received IP (and/or MAC) address, server 195 causesidentification of the program access services afforded to the user. Inaddition, server 195 retrieves from storage the aforementioned userrecord, which includes the IDs of the assets containing programsreserved by the user. Based on other data in the received request, theretrieved information and the access service information, server 195generates the user-specific integrated program guide in question andtransmits the guide to terminal 158-1 for display.

FIG. 20A provides a view of one such integrated program guideidentifying programming accessible to the specific user who is affordedboth the NPVR service and set-top PVR service. FIG. 20A shows integratedprogram guide 6000 selected by the user to view for a particularchannel, e.g., channel 4 in this instance. However, guide 6000 may bescrollable (up and down) to view listings of the accessible programmingfor other channels as well. Without loss of generality, the channel 4programming for each day is listed in guide 6000 in a cell associatedtherewith, e.g., in this instance cell 6110 associated with May 29 whichis in the past, cell 6112 associated with June 1 which is today's date,cell 6114 associated with June 3 which is in the future, etc. It shouldbe noted that guide 6000 may also be scrollable (left and right) to viewlistings of the accessible programming for other past and future datesas well, especially when the NPVR service enables the user to reservepast and future programs up to a predetermined period (e.g., two weeks)from the current day.

In this instance, all of the programs listed in guide 6000 arereservable (and thus accessible to the user) except the shaded programs,e.g. programs 6121 and 6123, perhaps due to certain limitations of theNPVR service afforded to the user. It will be appreciated that in actualimplementation, the NPVR service may be provided to a user on a channel,program, time range or other basis depending on a subscription feeschedule. Thus, in this instance, the user may reserve any unshadedprogram listed in guide 6000 by selecting the unshaded program, and thenpressing “record” key 910 on remote control 900. The reserved programsin this instance are indicated by “#” in guide 6000. Thus, in thisexample programs 6125, 6127 and 6130 have been reserved by the user. Inaddition, programs which have been requested to be set-top PVR recordedin this instance are indicated by “*”. Thus, in this example the userhas requested that programs 6141 and 6143 be set-top PVR recorded.Advantageously, with guide 6000 described above, the user can readilyidentify, and reserve or record those desired programs for later reviewwhich have not been recorded or reserved.

In accordance with yet another aspect of the invention, for thoseprograms which were reserved or set-top PVR recorded and which have beenbroadcast (e.g., programs 6125, 6127 and 6141), the user may select onesuch program in guide 6000 and start reviewing it by pressing a “play”key on remote control 900.

The inventive program reservation service, i.e., NPVR service, issuperior to a subscription video-on-demand (SVOD) service in that theSVOD service only allows a user to access programming that wasbroadcast. For example, an SVOD service may be configured to allowaccess to selected programming that was broadcast within the last fewdays (e.g., 2 days). FIG. 20B illustrates integrated program guide 7000identifying programming accessible to a user who is afforded such anSVOD service and set-top PVR service only. In contrast to guide 6000,guide 7000 has all future programs (i.e. programs after the current time(e.g., 7:00 am) which have not been broadcast) shaded and madeinaccessible to the user due to the limitations of the SVOD service. Inaddition, all of the programs broadcast three or more days ago (i.e.,before May 30) are shaded in guide 7000, and thus made inaccessible tothe user, again due to the limitations of the SVOD service. However,those desired programs which are not accessible using the SVOD servicemay be requested to be set-top PVR recorded in advance of theirbroadcast times, e.g., programs 7012 and 7014.

It should be noted at this point that program guides 6000 and 7000 areshown in a table format for illustrative purposes only. It will beappreciated that one skilled in the art would be able to devise otherformats to identify, to a user, those programs which are available forreservation or recording, those which have been reserved, those whichhave been recorded or requested to be recorded, etc. For example,referring to FIG. 20C, a user may be provided with, instead of guide6000, three program lists jointly conveying similar information to guide6000. As shown in FIG. 20C, a first program list, denoted 8001,identifying those programs which are available for reservation using theNPVR service and recording using the set-top PVR service. A secondprogram list, denoted 8003, identifying those programs which have beenreserved using the NPVR service. Thus, program list 8003 in thisinstance includes identifiers of aforementioned programs 6125, 6127 and6130. An identifier of a program here may comprise the title of theprogram, its broadcast time, the program channel on which the program isbroadcast, etc. A third program list, denoted 8005, identifying thoseprograms which have been recorded or requested to be recorded using theset-top PVR service. Thus, program list 8005 in this instance includesidentifiers of aforementioned programs 6141 and 6143. The programidentifiers in each of lists 8001, 8003 and 8005 may be organizedaccording to the program channels they are on, their broadcast times,alphabetical order of their titles, their program types, etc., or acombination thereof. In fact, the user in this instance is afforded thecapability of reorganizing the program identifiers in each list inwhatever order preferred by the user.

In addition, the user in this instance is afforded the capability oftraversing each list to select or deselect individual programsidentified therein. For example, the user may select one or moreprograms in list 8001 to reserve the same. The identifiers of thereserved programs are then moved from list 8001 to list 8003.Conversely, the user may deselect programs in list 8003 to obliteratetheir reserved status. The identifiers of the deselected programs,available for reservation, may then be moved to list 8001. Moreover, forthose programs which were reserved (in list 8003) or set-top PVRrecorded (in list 8005) and which have been broadcast (e.g., programs6125, 6127 and 6141 marked by “^”), the user may select one such programin the list and start reviewing it by pressing a “play” key on remotecontrol 900.

My Shows

A My Shows GUI provides a user with a list of available programs thathave been reserved by the user. In the case where multiple users in ahousehold are served by a set-top terminal, each user may utilize the MyShows GUI to create his/her own list of reserved programs. Referring toFIG. 21, when a user reserves a program, the reserved program are listedin the “My Shows” GUI (e.g., 1100A, 1100C) accessible from Home GUI1030. In one embodiment, the My Shows GUI enables a user to find, sortand manage programs, including reserved programs (i.e., programs thathave already been reserved and are currently available for viewing),upcoming programs (i.e., programs that are scheduled to be reserved buthave yet to be broadcast) and recommended programs (i.e., programs thatthe system reserves automatically based on user profile).

While viewing channel display 1010 in FIG. 21, a user may access HomeGUI 1030 by pressing guide key 920 and then “B” key 940 of remotecontrol 900. At Home GUI 1030, a user at terminal 158-1 is prompted toselect one of the programming features listed in menu 1110. By selectingMy Shows feature 1120 in menu 1110, a user is able to access My ShowsGUI exhibiting the programs that have been reserved. In one embodiment,this may be accomplished by pressing select key 960 of remote control900 when My Shows feature 1120 is highlighted in Home GUI 1030.

In one embodiment, when My Shows feature 1120 is selected and fewer thana predetermined number programs (e.g., seven programs) have beenreserved by a user, all of the reserved shows are immediately listed inMy Shows GUI 1100A. If, however, more than a predetermined number ofprograms have been reserved, the user's shows may be organized bycategories. For example, My Shows GUI 1100B lists several categories toassist a user in locating a program through the My Shows feature. Someof these categories may be temporal in nature; that is, a user'sreserved programs may be categorized by those programs that arein-progress (i.e., currently broadcast), upcoming (i.e., to be broadcastin the future) or by the reservation date of the program. In oneembodiment of the invention, programs that are categorized byreservation date are listed in chronological order beginning with showsthat have been most recently reserved (1100C) or in reversechronological order.

Other categories of program listings are available. For example,programs in the My Shows list may be organized by title, which is analphabetical listing of reserved programs by program title. Programs mayalso be organized by genre such that reserved programs are listed byprogram content type such as comedy, drama, action, sports and the like.Further, a user may access a list of reserved shows that are set toexpire within a few days (i.e., expiring soon programs).

As users scroll through programs listed in My Shows GUI 1100A, 1100C,the following information may be shown for the highlighted show: programtitle, short description of the program, channel name (including callletters), channel number, broadcast date for past reserved programs,broadcast time for current and future reserved programs, rating (such asG, PG-13 and R), and the program running time.

After viewing the listed programs in My Shows GUI 1100A, 1100C, the usercan select current and past programs for viewing, designating it as a“Favorite” as described with reference to FIG. 23 below, find similarprograms, archive program to a tape, DVD, etc., or designate programsfor their deletion. Further, future programs that have been reserved mayalso be designated as a Favorite, selected for finding similar programs,archived to a tape or designated for their deletion.

On-Demand

An On-Demand GUI provides a user with an interactive capability toreserve and play movies, premium TV programming as well as certain newsand other television programming without a time parameter since suchmovies and programming is available on-demand. Once broadcasting of aprogram or movie has begun, the user can watch the content as it isbeing broadcast for the first time or at any time thereafter as long asit is still available (i.e., has yet to expire), subject to the rightsnegotiated with the content provider.

FIG. 22 illustrates accessing the On-Demand feature through the userinterface. From viewing a first channel GUI 1010, a user may access homeGUI 1030 by pressing guide key 920 and then “B” key 940 of remotecontrol 900. At home GUI 1030, a user is then prompted by terminal 158-1to select one of the programming features listed in menu 1110. Byselecting On-Demand feature 1610, a user is presented with choices ofpremium movie channels (such as HBO, Showtime, Star/Encore and thelike), a menu item labeled “Movies,” specialized channels (such asmusic, music videos, weather, and the like) and “Free” channels (such asCNN, A&E, and the like). Viewers can then select an On-Demand channelfrom the listed premium movie channels, “Movies” channel, specializedchannels or free channels.

Free channels require no purchase by the user, whereas premium moviechannels and individual Movies typically do require a purchase by theuser. Although premium movie channels require a purchase beyond thebasic cable service fee, the fees associated with these channels arepaid in advanced through a subscription service. When a purchase of anindividual movie is required, however, the user is prompted on thescreen to input certain data (such as a personal identification number)to effectuate the purchase of the program. With respect to thespecialized channels, some of these channels may require a subscriptionservice purchase, some may require a specific program purchase andothers may not require any purchase.

In one embodiment of the invention, on-demand programs may be accessedby a user at terminal 158-1 by choosing among different categories. Forexample, on-demand programs may be listed in the premium TV category forprograms that have been or will be broadcast by a premium TV provider(such providers include HBO, Showtime, etc.). Programs listed in thepremium TV category may be further categorized by programs that are inprogress, by genre or by channel. Programs listed by channel includes,in one embodiment, an alphabetical listing of programs for each channelavailable to a user. Further, On-Demand movies may be listed in a moviescategory and may be listed alphabetically, by actor or by genre. Inaddition to movies, TV series and news programs may also be reserved bya user on demand. Thus, the On-Demand feature enables a user to selectprograms for display that is convenient to the user's schedule, insteadof a time that is designated by the content provider.

Illustratively, once a movie or program has been selected by the user, ascreen is displayed describing specific features of the movie or programselected. For example, when a movie is selected on demand for possiblepurchase, information concerning the selected program may be displayed,including: the movie's title, a description of the movie, the movierating, running time and the like. Additional information about themovie may be accessed by pressing info key 990 of remote control 900.This additional information may include, a more detailed description ofthe selected movie, a listing and description of the actors in the movieand a video preview of the movie.

Similar to a reserved program, once an On-Demand program has beenordered, the user can navigate through the program in a manner similarto watching a movie on a PVR. The user may therefore be able to play,pause, stop, fast forward and rewind the reserved program.

In one embodiment, access to a program may be terminated upon reachingone of the following scenarios. If, for example, an entire program isplayed and not as a result of the fast-forward key, media processor 119may determine that the program is complete and access to the program isterminated. At this point, the user may be prompted to request anadditional program on demand. Access to a program may also be terminatedif media processor 119 determines that a predetermined time interval(expiration period) has been met. Typically, a reminder is displayed onthe user's screen notifying the user that the time to view a programwill be terminated at a specified time in advance of such expiration.

Favorites

In this illustrative embodiment, a user (or each of multiple users in ahousehold as the case may be) may establish one or more personalprofiles that enable users to sort content and channels by the user'spersonal content preferences. For example, users can define theirfavorite programs in profiles which are comprised of lists of criteriafor sorting program content. Through the user interface, users can thensearch program data for content that matches the criteria in a user'sprofile and return the results to the user's lists of Favorite programs.Profiles may be defined by one or more criteria, including actor,program category (TV show, movie, etc.), director, genre, keyword, titleor the like.

Access to the Favorites features according to one embodiment is shown inFIG. 23. By accessing Home GUI 1030, a user is prompted to select one ofthe programming features listed in menu 1110. By selecting Favoritesfeature 1410 of menu 1110, the user accesses Favorites submenu 1420 onFavorites GUI 1400 which offers several choices concerning the Favoritesfeature. For example, in this instance the user can choose from:creating a new profile, deleting an existing profile, adding parametersto an existing profile, finding favorite channels or shows and excludingchannels.

If the user wants to find a program that meets the parameters of theuser's existing Favorites profile, the “Find Favorite Shows” feature isselected from the Favorites submenu 1420, and a listing of all of theprograms that meet such criteria is displayed (1440). The user can thenreserve, play or delete a program from the displayed Favorites list.Other options are available and are described below.

Referring to FIG. 24, a user may create a new profile by using selectkey 960 of remote control 900 to select the “Create New Profile” linkfrom Favorites submenu 1420 to display search parameters from which auser may choose (1450). These parameters may include programmingcategory, actor(s) name, program title, director, keyword and the like.FIG. 24 illustrates the method of creating and deleting a favoritesprofile in accordance with one aspect of the invention. Once the “CreateNew profile” display is accessed (1450) from the favorites GUI (1400),the user is prompted to set up a profile by selecting from severalcriteria (1455). If, for example, the criteria chosen is “By Actor,” theuser is prompted to select an actor for allocation to its Favoritesprofile. In one embodiment, the names are listed in alphabetical order(1460). Once the desired actor is selected, a list of programs thatincludes the selected actor is displayed and the total number of programtitles meeting such profile is also included (1470). The user is thenasked to decide whether the profile should be added to an alreadyexisting profile (by pressing “B” key 940 of remote control 900) orwhether the criteria selection should be saved as a new profile (bypressing “C” key 950 of remote control 900). In one embodiment, a usermay have multiple profiles. For example, a user may wish to have oneprofile on the weekends and another during the week. Similarly, a usermay create a profile which provides a user access to all availableprogramming on a certain topic. For example a profile relating tocooking may include in-progress broadcasts, past broadcasts andout-of-market cooking programs. In such circumstances, the user mayassociate a descriptive name to the profile (such as “Weekend Programs”,“My Cooking Stations”, etc.) and access each of the multiple profiles atdifferent times.

A user may also choose to delete a profile. This is accomplished byusing select key 960 of remote control 900 to select the “DeleteProfile” link from favorites submenu 1420 and thereby displaying theprofiles already created and saved by a user (1500). After the usermakes a confirmation (1510), the profile is then deleted from the user'slist of profiles.

The “Favorites” menu also enables a user to “Find Favorite Shows” which,when this option is selected, terminal 158-1 displays all programs thatmeet the current profile criteria for all profiles. Once a user hasdefined at least one profile, the user can, through the user interface,automatically search program data and then view all programs that matchany profiles in the user's Favorite Shows (1440). To view a program, theuser selects Favorite Shows (1440), selects a show in the list and thenterminal 158-1 presents to the user the playback options.

A user can also designate “Favorite Channels” which are channels thatare often watched by a user. A channel may be designated as a “FavoriteChannel” by selecting “Favorite Channels” from the Favorites menu 1420or by pressing FAV key 980 of remote control 900. Once a user hasdefined one or more Favorite channels, the user can toggle interactiveprogram guide 1020 to display only Favorite channels and re-toggle backto the full list of channels. Channels can further be managed bydefining a list of Excluded Channels from Favorites menu 1420. Thesechannels are then skipped when a user channels up or down.

Lookback Feature

A user can also reserve, play or re-start, programming content that hasbroadcast during a predetermined period in the past by accessing a“Lookback” feature in accordance with the invention. The Lookbackfeature enables access to programming content that has broadcast duringa “Lookback Period”—i.e., up to the predetermined period. The actuallength of the period is subject to the negotiated rights to theprogramming content.

In one embodiment, the Lookback feature enables a user to re-start aprogram that is currently being broadcast. The Lookback feature alsoenables a user to play a program that was previously broadcast withinthe Lookback Period (e.g., the previous two days). In addition, theLookback feature enables a user to reserve a program in its entiretythat is presently being broadcast or a program that was previouslybroadcast within the Lookback Period for subsequent viewing orarchiving.

Programs that are available through the Lookback feature may be accessedfor viewing or reserving in several ways. For example, a Lookback menumay be accessed when viewing content on a channel which, in effect,gives that channel an on-demand-like feature. Thus, by accessing aLookback menu, the viewer is presented with a categorical listing of allprograms that are available for either (1) immediate viewing, or (2)reservation for subsequent viewing. Therefore, the Lookback featureprovides a user with the ability to play or reserve previously (orcurrently) broadcast programs, but does not require the user to denotesuch programs in advance as a favorite, or to otherwise proactivelyelect to reserve the program.

Programs that are available through the Lookback feature may be accessedby a listing that is organized by channel, by reverse chronological (orchronological order), by theme (movies, sports, drama, etc.) or by analphabetical listing. For example, referring to FIG. 19, a user canaccess interactive program guide 1020 and scroll through program grid1060. In addition to scrolling up or down to view programming availableon different channels, the user may scroll backwards by pressing leftarrow key 985 b of remote control 900 to view past programs that may beaccessed. In another embodiment of the invention, currently broadcastprograms and previously broadcast programs that are available foraccessing during the Lookback period are identified in program grid1060, and programs that are unavailable may be so designated therein.

In addition, the Lookback feature may be made available while a user isviewing a program on certain broadcast channels. For example, turning toFIG. 25, while a user is viewing a program on an HBO channel, Lookbackfeature option 8112 is offered on GUI 8110 after the user presses menukey 970 on remote control 900. In accordance with another aspect of theinvention, a selection of option 8112 in this instance allows the userto access past programs broadcast on the same channel (i.e., the HBOchannel being viewed by the user) within the Lookback Period.Specifically, by highlighting the Lookback feature option 8112 andpressing select key 960 on remote control 900, a list of programmingcategories, denoted 8114 are displayed under selected Lookback featureoption 8112. These categories may include sports programming, specials,original series, movies, kids programming. By highlighting a programcategory from list 8114, another list of available programs, denoted8116, is displayed on GUI 8110.

Upon selecting a program category by pressing select key 960 of remotecontrol 900, Lookback Programming GUI 8120 lists programs 8116 that areavailable on the displayed on-demand channel for the program categorythat was selected. In accordance with an illustrative embodiment of theinvention, these programs 8116 are listed on the left side of GUI 8120.As the user highlights a listed program, episodes 8124 that areavailable through the Lookback feature are listed on the right side ofGUI 8120.

Upon selecting a program by pressing select key 960 of remote control900, Lookback Episode GUI 8130 lists episodes 8124 that are available onthe displayed On-Demand channel for the program that was selected. Inthis illustrative embodiment, these episodes 8132 are listed on the leftside of Lookback GUI 8130. As the user highlights a listed episode, thereservation/play options 8134 that are available through the Lookbackfeature are listed on the right side of GUI 8130. These features mayinclude, for example, canceling the Lookback feature request, playingthe selected episode, reserving the selected episode and reserving theentire series (i.e., season pass).

In another embodiment, a Global Lookback feature is also available.Global Lookback enables a user to access a program previously broadcasteven if the user does not know on which channel it was broadcast. Asillustrated in FIG. 26, the Global Lookback feature displays programsfrom one or more databases of all channels providing Lookback-enabledaccess during a given Lookback period (e.g., two days into the past).For example, Lookback option 8212 is displayed upon accessing On-Demandoption 8214 of GUI 8110. By highlighting Lookback option 8212, a list ofcategories of available Lookback programs, denoted 8216, is displayed onthe right side of GUI 8210. These categories include, e.g., TV showseries, sports programming, specials, movies, kids programming and news.

Upon selecting Lookback option 8212 by pressing select key 960 on remotecontrol 900, Lookback Program Categories GUI 8220 is displayed. Inaccordance with an embodiment of the invention, the available programcategories 8216 are now listed on the left side of GUI 8220. Byhighlighting a listed program category, a list of available programs,denoted 8224, is displayed on the right side of GUI 8220.

Upon selecting a program category by pressing select key 960 of remotecontrol 900, Lookback Programming GUI 8230 lists the programs 8224 thatare available for the program category that was selected. In thisillustrative embodiment, these programs 8224 are listed on the left sideof GUI 8230. As the user highlights a listed program, episodes 8234 thatare available through the Lookback feature are listed on the right sideof GUI 8230.

Upon selecting a program by pressing select key 960 of remote control900, Lookback Episode GUI 8240 lists, on the left side of GUI 8240,episodes 8234 that are available on the displayed On-Demand channel forthe program that was selected. As the user highlights a listed episode,the reservation/play options 8244 that are available through theLookback feature are listed on the right side of GUI 8240. Thesefeatures may include, for example, canceling the Lookback featurerequest, playing the selected episode, reserving the selected episode,etc.

In yet another embodiment, the Lookback feature is also availablethrough an information banner, from which a show within the Lookbackperiod could be selected for playing or reservation. Referring to FIG.27, information banner 8332, illustratively in the form of a rectangularbar, contains information about a program that is being viewed by auser. The information banner is displayed, e.g., when the user tunes toa channel or when a user presses info key 990 of remote control 900. Theinformation includes the present time, the broadcast time (beginning andending times), the channel on which the program is broadcast, etc. Asindicated by GUI 8310, also provided by banner 8332 is a messageindicating the availability of the Lookback feature for programmingoffered by the currently viewed channel.

By pressing select key 960 of remote control 900, Lookback (programcategories) GUI 8320 is displayed. In accordance with an embodiment ofthe invention, the available program categories, denoted 8322, arelisted on the left side of GUI 8320. By highlighting a listed programcategory, a list of available programs for such category, denoted 8324,is displayed on the right side of GUI 8320.

Upon selecting a program category by pressing select key 960 of remotecontrol 900, Lookback Programming GUI 8330 lists programs 8324 that areavailable for the program category that was selected. In thisillustrative embodiment, these programs 8324 are listed on the left sideof GUI 8330. As the user highlights a listed program, episodes 8332 thatare available through the Lookback feature are listed on the right sideof GUI 8330.

Upon selecting a program by pressing select key 960 of remote control900, Lookback Episode GUI 8340 lists, on the left side of GUI 8340,episodes 8332 that are available for the selected program. As the userhighlights a listed episode, reservation/play options 8344 that areavailable through the Lookback feature are listed on the right side ofGUI 8340. These features may include, for example, canceling theLookback feature request, playing the selected episode, reserving theselected episode, etc.

Special Services

As shown in FIG. 28, special services 3100 may be accessed by the userinterface and, in one embodiment, may include Internet Access 3110(including AOL, e-mail, AIM, keyword searching, etc.), Distance Learning3120, Food On Demand 3130, Shopping 3140 and Special Interests 3150.

In one embodiment, a user may select Distance Learning (3120) to accessa wide array of educational programs. For example, in the DistanceLearning feature, terminal 158-1 may display program offerings relatingto earning a GED or MBA, SAT preparation courses, tax preparationcourses and the like. A user may access a specific course or courseprogram by selecting from a menu of educational program categories andthen choosing the specific course or course program that is desired. Ifthe user highlights a specific course or course program and depressesinfo key 990 of remote control 900, terminal 158-1 displays informationconcerning the course.

Through the user interface, the user can also access Food On Demand(3130) which provides information concerning local restaurants orgroceries. In one embodiment, a user that accesses Food On Demand isprompted by terminal 158-1 to enter a food type such as Chinese,Italian, Kosher, Sandwiches, etc. The user is then prompted to selectwhether information concerning restaurants or groceries is desired. Inresponse to these parameters, relevant information is provided to theuser. For example, if a user selects Chinese for food type andrestaurant as venue, then a listing of Chinese restaurants in the user'sgeographic area is displayed. By selecting one of the listedrestaurants, the user can access, via terminal 158-1, certain basicinformation such as description of restaurant and restaurant locationand hours. By pressing info key 990 of remote control 900, the user canaccess advanced information including the restaurant's menu, photographsof the restaurant and real time seating availability and reservations.Similar type of information is available concerning grocers listed withthe Food On Demand feature including available food items, prices, storelocation and hours.

Through the user interface, a user can also access information forpurchasing goods. The Shopping feature (3140) enables a user to accessbasic information and advanced information concerning a wide array ofgoods. In one embodiment, by choosing the Shopping feature, headend 105generates an initial list which includes broad categories of goods suchas clothing, electronics, office supplies, cosmetics, etc. When the userselects a listed category, subcategories of goods are then displayed. Anexample of subcategories for the electronics category may includecomputers, televisions, stereos, PDA's, fax machines, etc. Once asubcategory is selected, specific goods relating to the selectedsubcategory is listed. Similar to Food On Demand, a user can accessbasic information and advanced information about a selected good. Forexample, if an HP fax machine is selected, basic information may includecertain specifications and pricing information concerning the faxmachine. By selecting info key 990 of remote control 900, advancedinformation including retail stores that sell the fax machines and avideo demonstration of the fax machine is made available to the user viaterminal 158-1.

Through the user interface, the user can also access Special Interests(3150). By accessing the Special Interests feature, a user may access alist of Hobbies or a list of Special Interests. The list of Hobbies mayinclude fishing, photography, bird watching and the like. Accessing aspecific hobby within the Hobbies list enables a user to access basicinformation and advanced information concerning such hobby. For example,if a user accesses bird watching, basic information including adescription of the hobby is provided. By pressing info key 990 of remotecontrol 900, the user may learn advanced information concerning birdwatching including organized local field trips, bird watching books thatare for sale, recommended bird watching equipment such as binoculars,etc. The Special Interests feature also offers basic and advancedinformation concerning special interests such as public speaking,religion, etc.

Settings

Various Settings enable customization of the operation and navigation ofthe user interface. In one embodiment, such settings may include:Blocked Channels, Excluded Channels, Power On Channel, Power On Timer,Power Off Timer, SAP and Out-Of-Market.

Excluded Channels are those channels that a user programs to betemporarily skipped when the user at terminal 158-1 is channeling up ordown. A user may choose to exclude a channel because it is rarely viewedby the user and therefore it is more convenient for the user not to haveto navigate through such channel.

Blocked Channels are those that are key protected and preventsunauthorized viewing of such channels. One example in which channels areblocked is where parents want to restrict access of one or more channelsto their children because the content offered by such channels may beconsidered inappropriate.

Power On Channel is a setting that allows a users to program a specificchannel to be tuned each time that terminal 158 is turned on. Forexample, avid sports fans may always want their terminal to turn on toESPN.

Terminals 158 may also have power on and power off timers. A power ontimer enables the terminal to turn on at one or more predetermined timesduring designated days. For example, a user that wakes up for work at6:00 a.m., Monday through Friday, may want to set the terminal toautomatically turn on at such time. Similarly, power off timerdesignates a specific time in which the terminal is turned off. Inanother embodiment, a user can program the terminal to turn off after acertain amount of time has transpired (e.g., 2 hours).

“Out-of-market” is a feature that enables a person who is located in acertain geographic area to access multimedia content from anothergeographic area. For example, if a user who lives in New York Citytravels to Los Angeles for two weeks, the user may want to access localNew York City news. By accessing the Out-of-market feature, the user maychoose media content that is geared toward the specific market for whichthe user is particularly interested. This is accomplished by firstcreating an Out-of-market profile. For example, a profile with the name“NY News” may be created by a user who wishes to reserve local newsprograms broadcast Over New York TV channels. When the user travels outof the marketplace (for example, to Los Angeles), the reservedOut-of-market programming may be accessed when the user inputs theappropriate personal identification number and profile name.

For example, referring to Out-Of-Market GUI 5810 of FIG. 29, a user mayhave out-of-market profiles set up for four U.S. cities—Chicago, NewYork, San Francisco and Seattle. By selecting “New York” from theout-of-market feature menu, the user may choose from, for example, NewYork News, New York Sports and New York Weather. If the user selects NewYork Sports, programming content relating to such selection isdisplayed. In this case, the user may select between New York Mets orNew York Yankees baseball content (5820).

What's Hot

The “What's Hot” feature offers users convenient access to programs,products and services that are or expected to be in popular demand.Access to the What's Hot feature according to one embodiment of theinvention is shown in FIG. 30. By accessing the What's Hot feature 3200of menu 1110, What's Hot submenu 3210 is accessed. From the What's Hotsubmenu, a user at terminal 158-1 can, for example, view a listing ofthe most popular programs 3220 that have been broadcast or those thathave yet to be broadcast but are expected to be in high demand. A usercan then reserve one or more of the listed programs for viewing.

What's Hot feature 3200 also enables a user to view previews 3230 ofpopular programs and, at any time during the preview, the user canreserve the program that is being previewed. If the program is one thathas been broadcast, then the user can play the program immediately or atsome time in the future. If the preview relates to a program that hasyet to be broadcast, the program may be reserved during the preview, andthe user can play back the reserved program after the program isbroadcast.

What's Hot feature 3200 also offers users access to informationconcerning popular products and services (3240). In one embodiment,these products may be listed by categories, such as sporting goods,jewelry, clothing, golf lessons and the like. In another embodiment,these products and services may be listed alphabetically by product orservice name. A user can select a product or service from the What's Hotproduct/service list and access information, including basic andadvanced descriptive information.

For example, if a new line of motorboats has recently been released inthe marketplace, the user interface may display information concerningthe specifications and sale of such boats. In one embodiment, a user mayfirst access basic information about the boat by selecting the motorboatproduct name from the list of products and services. Basic informationmay include physical dimensions of the boat, its speed, suggested retailprice, etc. The user may then press info key 990 on remote control 900to access advanced product information. Advanced product information mayinclude retail stores that sell the boat and directions to and hours ofoperation of identified stores. Advance product information may alsoinclude a video showing the boat in operation.

Network Home Screen

A user in this instance may access network home screen 1900 in FIG. 31through interactive program guide 1020. As mentioned before, rights toall or some of the program materials on certain channels may have beennegotiated and acquired from their providers. In accordance with anaspect of the invention, these rights-acquired channels are indicated onthe program guide differently, e.g., in a different color, than otherlisted channels. In this example, let's say rights to all programmaterials on the HBO channel have been acquired, which thus is indicatedas a rights-acquired channel on the program guide. For instance, byhighlighting the HBO channel on the guide and pressing info key 990 onremote control 900, the user is able to access network home screen 1900,which concerns the HBO channel in this instance.

As shown in FIG. 31, screen 1900 comprises window 1903 which displaysthereon an in-progress HBO program, i.e., the “Sopranos” in thisinstance. The title of the in-progress program denoted 1905 appearsunder window 1903. The current time denoted 1907 also appears underwindow 1903. A time bar denoted 1909 is used to indicate the progressionof the in-progress program. One end of time bar is marked with the starttime of the in-progress program (i.e., 9:00 p.m. in this instance), andits other end is marked with the end time thereof (i.e., 10:00 p.m. inthis instance). The same start and end times of the in-progress programare indicated on micro-grid or micro-guide 1913, along with those of theprograms contiguous to the in-progress program. Time bar 1909 hasmarking 1911 thereon for graphically indicating the proportion of theprogram which has been broadcast. If the user wants to view thein-progress program from the beginning thereof, the user may usenavigation keys 985 on remote control 900 to cause a “Restart” option(denoted 1921) to be highlighted, and selects the option by pressingselect key 960. If the user wants to reserve the in-progress program forlater viewing thereof, the user may similarly select a “Reserve” option,denoted 1923. If the user wants to take advantage of the above-describedWhat's Hot feature to reserve certain HBO programs through theirpromotional previews, the user may select a “What's Hot!” option,denoted 1925. Similar to a What's Hot preview, a thumbnail preview,denoted 1931, may be used to reserve the program (e.g., “The GatheringStorm”) featured in the preview in advance of the broadcast of theprogram (e.g., on April 27). To make such a reservation, the user mayhighlight and select preview 1931.

Music on Demand

Referring to FIG. 32, through the user interface, an interactive musicvideo feature called Music On Demand may be accessed. Music On Demandenables a user to search for videos by categories 3300, includingrecording artist name, song title, music type (jazz, rock, classical,etc.), time period (60's, 70's, 80's), and the like, as well asassociated subcategories 3310. Upon selecting a video for viewing, auser at terminal 158-1 can access several Music On Demand options 3320by pressing info key 990 on remote control 900, including Add Video toShopping Cart 3321, Buy CD 3322, Buy Video 3323, Concert Information3324, MP3 Download 3325 and Photos 3326.

The Add Video to Shopping Cart feature 3321 enables a user to reserve amusic video such that it can be recalled for viewing at any time. In oneembodiment, the user may “rent” the video—that is, for a certain price,the user can access the video for a predetermined time period (such as amonth). In another embodiment, the user may “buy” the video—that is, fora certain price, the user has extended term access to the video (such asone year or unlimited access).

The Buy CD feature 3322 enables a user to purchase a recording of theartist that is performing the video that is being currently viewed bythe user. In one embodiment, a list of CD's that contains the performedsong by the performing artist is displayed. In another embodiment, allCD's recorded by the performing artist is displayed by terminal 158-1for purchase by the user. Similarly, the user will have the option to(1) buy a recording of the video by selecting the Buy Video feature(3223); (2) download an MP3 recording of a song or CD recorded by theviewed artist by selecting the Download MP3 feature (3224); or (3)download photographs of the recording artist by selecting the Photosfeature (3225).

The Concert feature (3226) enables a user that is a watching a musicvideo to access concert information relating to the recording artist.Concert information may include location, date and time of the concert,ticket availability and pricing, as well as a link to purchase tickets.

Sports

Referring to FIG. 33, through the user interface, convenient access tosports programs and information relating to such programs may beprovided. The Sports feature (3400) enables a user to search for sportsprograms by reviewing menus for selecting the type, subtype and specificsports program to be viewed (3410). The types of sports programs mayinclude basketball, baseball, hockey, soccer, football, golf, etc. If,for example, a user selects basketball, several subtypes may bedisplayed including NBA basketball, college basketball, and the like.

When a sports program is reserved and viewed, the user at terminal 158-1can access information concerning the viewed program. In one embodiment,when the user depresses info key 990 of remote control 900, a menu isdisplayed for accessing information concerning the sport being viewed,the specific game being viewed, the specific players being viewed andother items of interest relating to the viewed sports program, includinginformation about the sports equipment used and clothing worn by theplayers.

Searching

In one embodiment of the invention, based on the data associated with aprogram or event, users can search for content including On Demandprograms, Pay-Per-View, broadcast and Out Of Network programs. Users canfind programs and events by searching for certain criteria includingactor, title, keyword, year/season, genre, rating and the like. A searchmay include one of these parameters or multiple parameters.

To access Searching, a user at terminal 158-1 depresses Search key 995of remote control 900. Once Searching is accessed, a user can thencomplete a Search. FIG. 34 illustrates the process of creating a search.Search GUI 1030 may be accessed from the home GUI 1030. As shown in FIG.34, different search parameters may be used. For example, a user cansearch for content by entering text relating to an actor's name, programtitle or any other keyword (2200). In another embodiment, by selectinggenre, a user can choose from action/adventure, comedy, documentary,drama, horror, romantic comedy or suspense (2210). A user may alsosearch for content by selecting a listed year (2220) or listed rating(i.e., TV-Y, NC-17, etc.) (2230). When the genre, year and/or ratingparameters are used for searching, a user may be prompted to use anadditional text search to reduce the number of programs listed in arequested search result. In one embodiment, a predetermined maximumnumber of results (e.g., 50) for a given search may be imposed. If thepredetermined maximum is exceeded, the user may be prompted to furtherlimit the search.

Commercial Targeting and Playback Monitoring

In one embodiment of the present invention, headend 105 is capable ofvarying advertising content included in reserved broadcasts and mediaprocessor 119 monitoring user viewing patterns concerning commercials.

By monitoring the content reserved and viewed by a user, headend 105 cancreate a profile relating to a user's interests. This information maythen be used to target advertising that would be of most use andinterest to the user and therefore most effectiveness to advertisers.Because reserved programs are recorded prior to distribution to a user,a content provider has the ability to vary advertising content prior todistributing a program to terminal 158.

Commercial monitoring can provide useful marketing information toadvertising companies and the companies that pay for the production anddistribution of these commercials. When viewing a program, users oftenchange channels during commercials. Further, when viewing a past programthat has been reserved, a user has the additional capability offast-forwarding through the commercials. Because a commercial is onlyeffective if it is viewed by its intended audience, monitoring whether auser has changed a channel or fast forwarded a program to avoid viewinga commercial can provide useful information to advertisers. Similarly,identifying the commercials that tend to be watched by a higherpercentage of the intended audience is valuable information to theadvertisers and companies that market the advertised products orservices.

FIG. 35 illustrates the Commercial Playback Monitoring feature inaccordance with one embodiment of the invention. In step 4210, areserved program is transmitted to a user. At some point during theprogram, a commercial is broadcast to the user (step 4220) and useractivity is monitored (step 4230). In one embodiment, media processor119 recognizes that a commercial has been presented by detecting tonesthat are embedded in the reserved program. These tones are embedded atthe beginning and at the end of the commercial so that the monitoringfunctionality of media processor 119 can be automatically powered on andoff as a commercial begins and ends.

When a commercial is broadcast and the monitoring functionality isturned on, media processor 119 detects if the entire commercial isplayed by the user (step 4240), a portion of the commercial is played orwhether the commercial has not been played at all (step 4260). If theentire commercial is played, media processor 119 generates a data pointat step 4260 indicating that the user has played the entire commercial.If, however, the entire commercial has not been played, media processor119 similarly generates a data point at step 4280 indicating that theuser has not played the commercial at all. Alternatively, if a portionof the commercial has been played, media processor 119 records theamount of time that the user played the commercial (step 4270). Thisdata is then compiled by media processor 119.

By performing such monitoring, a content provider can collect certaininformation relating to a commercial's effectiveness includingdetermining the percentage of viewers that watched a specificcommercial, which group of user watched and which did not watch thecommercial (such as those tuning in to sports programs versus thosetuned in to news programs), at what point in the commercial was it nolonger played, whether the same user played the same commercial multipletimes, and the like.

Picture in Picture (PIP) Programming

In an illustrative embodiment of the invention, a content provider mayprovide a video stream that appears to a user to be a picture in picture(PIP) broadcast, with multiple programs juxtaposed next to one another.The PIP format may be predefined. For example, in providing a sports PIPpackage, the PIP format may be defined as having programs from ESPN,ESPN2, ESPN Classic, and ABC Sports displayed on four quadrants of theTV screen, respectively.

In another embodiment, because all programs are recorded at headend 105,a video stream may be provided by the cable operator which representsmultiple recorded programs juxtaposed next to one another. Accordingly,headend 105 may receive from a user at a set-top terminal a PIP request,where the PIP format and/or make-up of the displayed programs may bepredefined, or selected by the user. In response to such a request, thecontent of appropriate recorded programs are arranged in headend 105 ina proper format to develop the PIP multicast receivable by the user'sset-top terminal.

Further, by using navigation keys 985 of remote control 900, the usermay select one of the PIP displayed programs to play the associatedaudio.

Messaging Service

In this illustrative embodiment, The messaging services provided insystem 100 include system messaging, subscriber content level messaging,and subscriber-to-subscriber messaging services. The types of messageprovided by each messaging service may be accorded different priorities,and the receipt of certain types of message may be optional. Forexample, the system messaging service may provide system messagesconcerning, e.g., emergency information, hot news, etc. The emergencyinformation messages may be accorded a higher priority than hot newsmessages. In this example, a user may be able to opt out receipt of thehot news messages but not the emergency information messages because oftheir higher priority. In addition, the system messages may begeographically specific. For example, system messages pertaining to ageographic area are provided to the users in that geographic area only(e.g., having specified zip codes)

The subscriber content level messaging service provides messages whichmay be directed to specific users at a group level or sometimes even ata personal level. Users of system 100 may be grouped according to theirprogram viewing habit. For example, those users who request baseballprograms frequently may be grouped as baseball fan-users. Thus, themessaging service in question may from time to time provide targetedmessages concerning baseball games, equipment, etc. to such baseballfan-users. In addition, the messaging service may provide personalmessages to a user, including messages concerning the user's account, anexpiration of the user's reserved program, etc.

The subscriber-to-subscriber messaging service may be realized by takingadvantage of the aforementioned RDCs for communicating upstream data,the aforementioned FDCs for communicating downstream data, and networkcontroller 125. To that end, a messaging interface, e.g., a GUI, may beinvoked by a user on screen to read, compose, send, reply or forwardmessages. It should be noted that users at set-top terminals in system100 are identified by their user account IDs which are assigned theretowhen the users register with the messaging service.

For example, a first user at a first set-top terminal, say, terminal158-1 in FIG. 1, may send through the messaging interface a message to asecond user at a second terminal, which may or may not be in the sameneighborhood as terminal 158-1. Such first and second users areidentified by their respective user account IDs in the message.Accordingly, terminal 158-1 may packetize the message into one or morepackets, depending on the length of the message. Each packet in thisinstance contains, among others, a sequence number for ordering thepacket at the receiving terminal, a destination address (e.g., the IPaddress of network controller 125) and an origination address (e.g., thefirst terminal IP and/or MAC address). After terminal 158-1 transmitsthe packet through an RDC, the packet is routed to network controller125 based on the destination address therein. It should be noted at thispoint that network controller 125 contains a table for translating auser account ID to the corresponding IP address of the user terminal.Upon learning the second user account ID in the leading packet, networkcontroller 125 looks up in the table the IP (and/or MAC) address of thecorresponding second terminal, for which the message is ultimatelydestined. Network controller 125 then sends a notice to the secondterminal via an FDC, informing the latter of the receipt of a messagefrom the first user identified by his/her user account ID. In responseto such a notice, the second user at the second terminal may acknowledgethat he/she is ready to receive messages. In that case, the secondterminal generates a positive acknowledgment to network controller 125.In response, network controller 125 replaces the original destinationaddress in the received packets with the IP (and/or MAC) address of thesecond terminal, thereby redirecting the packets to the second terminal.The second terminal receives the packets via an FDC, which contain theorigination address identifying the originating, first terminal.Conversely, the second user may communicate with the first user throughthe messaging interface provided by the second terminal, therebyrealizing the subscriber-to-subscriber messaging service. Subsequentmessages may continue to flow between the two terminals until eitherterminal sends an end-of-transmission (EOT) message to networkcontroller 125.

In the event that after sending the aforementioned message receiptnotice to the second terminal, network controller 125 receives anegative acknowledgment or no response therefrom, the message isretained in network controller 125 for later retrieval by the secondterminal. Network controller 125 then informs the first terminal of thenegative acknowledgment or non-response from the second terminal.

The foregoing merely illustrates the principles of the invention. Itwill thus be appreciated that those skilled in the art will be able todevise numerous other arrangements which embody the principles of theinvention and are thus within its spirit and scope.

For example, in the disclosed embodiment, remote control 900 is used asan external peripheral to interact with system 100. However, it will beappreciated that other peripherals, such as a printer, dance pad,joystick, camera, and mobile device (e.g., a personal digital assistant(PDA)), connectable to a set-top terminal (e.g., through a USB port) maybe used to interact with system 100 as well.

Finally, system 100 is disclosed herein in a form in which variousfunctions are performed by discrete functional blocks. However, any oneor more of these functions could equally well be embodied in anarrangement in which the functions of any one or more of those blocks orindeed, all of the functions thereof, are realized, for example, by oneor more appropriately programmed processors.

1. A method for facilitating a user at a user location to reserve abroadcast program for subsequent access to content thereof, the methodcomprising: receiving at a location remote from the user locationcontent of a program from a content provider before broadcast of theprogram; substantially simultaneously recording the content of theprogram at, and broadcasting the content of the program from, thelocation remote from the user location; causing an identifier for thebroadcast program to be available for selection by a user for a durationafter broadcast of the content of the program, at any point during whichduration the recorded broadcast program is accessible by a user, theduration being based on rights granted by the content provider forpermitting reservation of the broadcast program by one or more users foraccess at any point during a specified amount of time followingbroadcast of the program; receiving a selection by a user of theidentifier; and allowing the user to access the recorded broadcastprogram in response to the received selection.
 2. The method of claim 1wherein the identifier of the program includes a title of the program.3. The method of claim 1 wherein the identifier is listed with respectto the time of broadcast of the program content.
 4. The method of claim1 wherein the identifier is listed with respect to the program channelon which the program content is broadcast.
 5. The method of claim 1wherein the program includes a TV program.
 6. The method of claim 1wherein the program includes video content.
 7. The method of claim 1wherein the selection of the identifier is received via a communicationsnetwork.
 8. The method of claim 7 wherein the communications networkincludes at least part of an Internet.
 9. The method of claim 7 whereinthe communications network includes at least part of a telephonenetwork.
 10. The method of claim 1 further comprising sending a messageto the user to archive the recorded content.
 11. The method of claim 10wherein the message is sent after a predetermined period from when theselection is received.
 12. The method of claim 10 wherein the message issent after a predetermined period from when the identifier is listed.13. The method of claim 10 further comprising charging the user a feefor archiving the recorded content.
 14. The method of claim 10 whereinan opportunity to archive the recorded content is available for apredetermined period after the message is sent.
 15. The method of claim10 wherein the recorded content is archived by storing the recordedcontent in a device selected by the user.
 16. The method of claim 15wherein the selected device includes a video cassette recorder (VCR).17. The method of claim 15 wherein the selected device includes adigital video disk (DVD) player.
 18. The method of claim 15 wherein theselected device includes a personal video recorder (PVR).
 19. A methodfor allowing a user to reserve a broadcast program for subsequent reviewof content of the program, the method comprising: obtaining rights froma content provider to the content of the program; receiving, at alocation remote from the user location, the content of the program fromthe content provider; substantially simultaneously recording the contentof the program at, and broadcasting the content of the program from, thelocation remote from the user location; determining a duration afterbroadcast of the content of the program, at any point during whichduration the broadcast program is accessible by a user, the durationbeing based on rights received by the content provider for permittingreservation of the broadcast program by one or more users for access atany point during a specified amount of time following broadcast of theprogram; and causing an identifier of the broadcast program to beavailable for selection by a user for the determined duration to reservethe program.
 20. The method of claim 19 wherein the identifier of theprogram includes a title of the program.
 21. The method of claim 19wherein the identifier is listed with respect to the time of broadcastof the program content.
 22. The method of claim 19 wherein theidentifier is listed with respect to the program channel on which theprogram content is broadcast.
 23. The method of claim 19 wherein theprogram includes a TV program.
 24. The method of claim 19 wherein theprogram includes video content.
 25. A system for facilitating a user ata user location to reserve a broadcast program, recorded and broadcastsubstantially simultaneously, for subsequent access to content thereof,the system comprising: an interface for receiving, at a location remotefrom the user location, from a content provider, content of a program tobe broadcast; a server for recording the content of the program, theserver being located remotely from the user location; a processor fordetermining a duration after broadcast of the content of the program, atany point during which duration the broadcast program is accessible by auser, the duration being based on rights received from the contentprovider for permitting reservation of the broadcast program by one ormore users for access at any point during a specified amount of timefollowing broadcast of the program; a processor for causing anidentifier of the broadcast program to be available for selection by oneor more users for the determined duration; and a mechanism for receivinga selection by a user of the identifier, access by the user to therecorded content of the broadcast program being allowed in response tothe received selection.
 26. The system of claim 25 wherein theidentifier of the program includes a title of the program.
 27. Thesystem of claim 25 wherein the identifier is listed with respect to thetime of broadcast of the program content.
 28. The system of claim 25wherein the identifier is listed with respect to the program channel onwhich the program content is broadcast.
 29. The system of claim 25wherein the program includes a TV program.
 30. The system of claim 25wherein the program includes video content.
 31. The system of claim 25wherein the selection of the identifier is received via a communicationsnetwork.
 32. The system of claim 31 wherein the communications networkincludes at least part of an Internet.
 33. The system of claim 31wherein the communications network includes at least part of a telephonenetwork.
 34. The system of claim 25 further comprising an output devicefor sending a message to the user to archive the recorded content. 35.The system of claim 34 wherein the message is sent after a predeterminedperiod from when the selection is received.
 36. The system of claim 34wherein the message is sent after a predetermined period from when theidentifier is listed.
 37. The system of claim 34 wherein the user ischarged a fee for archiving the recorded content.
 38. The system ofclaim 34 wherein an opportunity to archive the recorded content isavailable for a predetermined period after the message is sent.
 39. Thesystem of claim 34 wherein the recorded content is archived by storingthe recorded content in a device selected by the user.
 40. The system ofclaim 39 wherein the selected device includes a VCR.
 41. The system ofclaim 39 wherein the selected device includes a DVD player.
 42. Thesystem of claim 39 wherein the selected device includes a PVR.
 43. Thesystem of claim 39 comprising a headend.
 44. A system for allowing auser to reserve a broadcast program for subsequent review of content ofthe program, rights being obtained from a content provider to thecontent of the program, the system comprising: an interface forreceiving, at a location remote from the user location, from the contentprovider, the content of the program, the content of the program beingsubstantially simultaneously broadcast from, and recorded at, thelocation remote from the user location; a processor for determining aduration after broadcast of the content of the program, at any pointduring which duration the broadcast program is accessible by a user, theduration being based on rights received from the content provider forpermitting reservation of the broadcast program by one or more users foraccess at any point during a specified amount of time followingbroadcast of the program; and a processor for causing an identifier ofthe broadcast program to be available for selection by a user for thedetermined duration to reserve the program.
 45. The system of claim 44wherein the identifier of the program includes a title of the program.46. The system of claim 44 wherein the identifier is listed with respectto the time of broadcast of the program content.
 47. The system of claim44 wherein the identifier is listed with respect to the program channelon which the program content is broadcast.
 48. The system of claim 44wherein the program includes a TV program.
 49. The system of claim 44wherein the program includes video content.
 50. Apparatus for accessingby a user one or more broadcast programs on a selected one of aplurality of channels, comprising: an output for providing programmingon a selected one of the plurality of channels, such programming beingsubstantially simultaneously recorded at, and broadcast from, a locationremote from user locations; and a mechanism for enabling selection of anidentifier of a broadcast program at any point during a duration afterbroadcast of the content of the program, the duration being based onrights received from the content provider of the broadcast program forpermitting reservation of the broadcast program by one or more users foraccess at any point during a specified amount of time followingbroadcast of the program.
 51. The apparatus of claim 50 wherein theidentifier includes a title of the at least one program.
 52. A methodfor accessing by a user one or more broadcast programs on a selected oneof a plurality of channels, comprising: providing programming on aselected one of the plurality of channels, such programming beingsubstantially simultaneously recorded at, and broadcast from, a locationremote from user locations; presenting an identifier of a broadcastprogram at any point during a duration after broadcast of the content ofthe program, the duration being based on rights received from thecontent provider of the broadcast program for permitting reservation ofthe broadcast program by one or more users for access at any pointduring a specified amount of time following broadcast of the program.53. The method of claim 52 wherein the identifier includes a title ofthe at least one program.